Warning: Select query cannot join with another table
Размещено 2009-10-06
в разделе Программирование | Метки:
Zend Framework, PHP
меняем на
Сегодня напоролся второй раз на подобную ошибку. Собственно вот причина,
пишем так:
<?php
class websitesTable extends Zend_Db_Table
{
protected $_name = 'websites';
public function getNumByGroupId($groupId)
{
$select = $this->select()
->from(array('w' => $this->_name),
array('num_websites' => 'COUNT(*)')
)
->where('website_group_id = ?', $groupId);
$stmt = $this->getAdapter()->query($select);
$res = $stmt->fetchAll();
return (count($res)) ? $res[0] : null;
}
public function getAll($page = 0, $itemsOnPage = 50)
{
$select = $this->select()
->from(array('w' => $this->_name))
->columns(array('domain', 'website_group_id'))
->join(array('wg' => 'website_groups'),
'w.website_group_id = wg.id'
);
// ->order(array('w.id DESC'));
print $select->__toString();
die;
$stmt = $this->getAdapter()->query($select);
$paginator = new Zend_Paginator(new Zend_Paginator_Adapter_DbSelect($select));
$paginator->setCurrentPageNumber($page);
$paginator->setItemCountPerPage($itemsOnPage);
return $paginator;
}
}
?>
Метод getNumByGroupId работает, а getAll - нет, и выдает ошибку. Решается таким образом:
<?php
$select = $this->select()
?>меняем на
<?php
$select = $this->getAdapter()->select()
?>