Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal, gostaria de saber como vocês estão fazendo para executar queries no Zend. No momento estou usando a estrutura que vem no Quickstart mas está bem complexo.
Não consigo por exemplo usar duas tabelas para dar um inner join.
Na função fetchall se eu uso isto ele dá pau nesta parte do From apenas (no caso estou só tentando usar uma outra tabela), também já procurei bastante para instanciar uma nova tabela mas está difícil, alguém pode ajudar?
$select = $this->getDbTable()
->select()
->from('guestbooktabela') // dá pau aqui
->order('email DESC')
->where('email = "foo@bar.com"')
;
$resultSet = $this->getDbTable()->fetchAll($select);
(código completo abaixo)
<?php
/**
* Guestbook data mapper
*
*/
class Default_Model_GuestbookMapper
{
/**
* @var Zend_Db_Table_Abstract
*/
protected $_dbTable;
public $request;
/**
* Specify Zend_Db_Table instance to use for data operations
*
* @param Zend_Db_Table_Abstract $dbTable
* @return Default_Model_GuestbookMapper
*/
public function setDbTable($dbTable)
{
if (is_string($dbTable)) {
$dbTable = new $dbTable();
}
if (!$dbTable instanceof Zend_Db_Table_Abstract) {
throw new Exception('Invalid table data gateway provided');
}
$this->_dbTable = $dbTable;
//$this->_dbTable = "guestbooktb";
return $this;
}
/**
* Get registered Zend_Db_Table instance
*
* Lazy loads Default_Model_DbTable_Guestbook if no instance registered
*
* @return Zend_Db_Table_Abstract
*/
public function getDbTable()
{
if (null === $this->_dbTable) {
$this->setDbTable('Default_Model_DbTable_Guestbook');
}
return $this->_dbTable;
//return $this->"guestbooktb";
}
/**
* Save a guestbook entry
*
* @param Default_Model_Guestbook $guestbook
* @return void
*/
/**
* Fetch all guestbook entries
*
* @return array
*/
public function fetchAll()
{
//$this->setDbTable('guestbooktabela');
$resultSet = $this->getDbTable()->fetchAll();
$entries = array();
foreach ($resultSet as $row) {
$entry = new Default_Model_Guestbook();
$entry->setId($row->id)
->setEmail($row->email)
->setComment($row->comment)
->setCreated($row->created)
->setMapper($this);
$entries[] = $entry;
}
return $entries;
}
}Carregando comentários...