Я хочу иметь категории и подкатегории, поэтому я создал таблицу
категории: id, имя, page_id, parent_id
Это мое приложение / models / Categories.php модель
<?php
class Application_Model_Categories extends Zend_Db_Table_Abstract
{
protected $_name = 'categories';
protected $_referenceMap = array(
'Pages' => array (
'columns' => 'page_id',
'refTableClass' => 'Application_Model_Pages',
'refColumns' => 'id')
);
}
Это мое приложение / models / Pages.php модель
<?php
class Application_Model_Pages extends Zend_Db_Table_Abstract
{
protected $_name = "pages";
protected $_dependentTables = array('categories');
}
Затем в моем контроллере я называю модель
$pages = new Application_Model_Pages();
$find = $pages->find(2456);
$current = $find->current();
$categories = $current->findDependentRowset('Application_Model_Categories');
Это работает, но проблема в том, что возвращаются все категории, и я хочу, чтобы только те, у которых parent_id = 0 (если parent_id> 0, они не категории, это подкатегории — возможно, мне нужно более подходящее имя таблицы-)
Также я хочу знать, как создать массив категорий и подкатегорий, чтобы я тоже мог вернуть эту информацию
В модельных категориях создайте функцию:
public function selectParentCategory($pID)
{
$select = $this->select()->where("parent_id = ?", $pID);
$row = $this->fetchAll($select);
return $row;
}
затем в вашем контроллере вы выполняете следующее:
$pID = 2456;
$pages = new Model_Pages();
$pages = $pages->selectParentCategory($pID);
$this->view->pages = $pages;
Других решений пока нет …