Marcelo L. Oliveira

Português (Brasil)English (United Kingdom)

Enquete

Em qual área de TI você atua?



Conexões:

Plaxo
del.ici.us
Linkedin
Flickr
YouTube
Twitter

Validações:

Este site é XHTML 1.0 Transitional válido
Este site é CSS válido

Demais:

Creative Commons



Consulta com Join no Zend Framework

PDF Imprimir E-mail

Zend Framework

Achei válido postar esta dica, haja vista, a escassez de hacks sobre este assunto em idioma português.

Sem muito blá blá blá, vou direto ao que interessa, mostrando um código bem simples.

Fazer um join utilizando Zend Framework é mais simples do que se possa imaginar. Vamos então, ao código:

No controlador escrevo da seguinte forma:

    // No momento não vou explicar este bloco, imaginando que quem chegou até aqui, 
    // já sabe do que se trata.
    $config = new Zend_Config_Ini('./application/config.ini', 'database');
    Zend_Registry::set('config', $config);
    $db = Zend_Db::factory($config->db->adapter, $config->db->config->toArray());
    Zend_Db_Table_Abstract::setDefaultAdapter($db);
    Zend_Registry::set('db', $db);

    // Neste ponto faço o join entre as tabelas "tabela1" e "tabela2".
    $select = $db->select()
                 ->from(array('t' => 'tabela1'),
                    array('campo1', 'campo2'))
                 ->join(array('t2' => 'tabela2'),
                  't.id = t2.id', array('campo3'));

    $stmt = $db->query($select);
    $dados = $stmt->fetchAll();
 
    // Mando imprimir no .tpl
    $view->assign('dados', $dados);
    $view->output('index/index.tpl');


Agora no arquivo index.tpl, escrevo o seguinte:

    <table border="0" cellspacing="3" cellpadding="3" width="550" >
      <tr>
         <td>Campo 1</td>
         <td>Campo 2</td>
         <td>Campo 3</td>
         </tr>   
      {foreach from=$dados item=dado}
      <tr>
         <td>{$dado.campo1}</td>
           <td>{$dado.campo1}</td>
           <td>{$dado.campo3}</td>
      </tr>
      {/foreach}
    </table>
Comentários
Ariane  - Onde está??   |02/06/2010 11:41:25
// No momento não vou explicar este
bloco, imaginando que quem chegou até
aqui,

// já sabe do que se
trata.

Não sei do que se trata. Onde
está?
Comentar
Nome:
E-mail:
 
Título:
 
Por favor coloque o código anti-spam que você lê na imagem.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

LAST_UPDATED2
 
Copyright © 2009 - 2010 MarceloWeb. Todos os direitos reservados.
Joomla! é um Software Livre com licença GNU/GPL v2.0.