У меня есть модуль с двумя моделями, которые расширяют Zend_Db_Table_Abstract:Регистрация с Zend_Db_Table_Abstract классов в Zend Framework
class Departments_Model_Subpages extends Zend_Db_Table_Abstract
{
protected $_name = 'bktg_departments_subpages';
protected $_primary = 'id';
}
class Departments_Model_Departments extends Zend_Db_Table_Abstract
{
protected $_name = 'bktg_departments';
protected $_primary = 'id';
}
Чтение через документацию, что я хочу сделать что-то вроде этого (очевидно, неправильно):
$depTable = new Departments_Model_Departments();
$subTable = new Departments_Model_Subpages();
$depQuery = $depTable->select()->setIntegrityCheck(false)
->from($depTable, array('id', 'title'))
->join($subTable, array('COUNT(id) as `count`'))
->where('bktg_departments.id = bktg_departments_subpages.parent_id');
Что мне не хватает? Я просто не могу обернуть голову вокруг присоединений Зенда, и я думаю, что собираюсь закончить писать прямо sql.
Спасибо, что посмотрели.
Редактировать
Вот что я работаю с компанией:
$depQuery = $depTable->select()->setIntegrityCheck(false)
->from($depTable, array('id', 'title'))
->joinLeft($subTable, 'bktg_departments.id = bktg_departments_subpages.parent_id', array('COUNT(id) as count'))
->order('id DESC')
->group('id');
СКП, который работает для меня:
SELECT bktg_departments.id, bktg_departments.title, count(bktg_departments_subpages.id) FROM bktg_departments left join bktg_departments_subpages on bktg_departments.id = bktg_departments_subpages.parent_id group by bktg_departments.id
И у меня возникли проблемы, воспроизводящих, что в Zend.
Так я мои параметры перепутали? Я очень ценю помощь. Поскольку я могу передавать модели в виде объектов, все равно использовать эти объекты в качестве предложения ON или всегда нужно их печатать (например, если по какой-то причине я переименую таблицу). – dbergunder
Хотя это не работает должным образом. Я хочу подсчитать возвращенный идентификатор subTable, который сопоставляет parent_id с id subTable. – dbergunder