使用Zend Framework 1的类别和子类别

时间:2014-10-07 03:22:11

标签: php zend-framework models

我希望有类别和子类别,所以我创建了一个表

类别:id,name,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&gt; 0他们不是类别,是子类别 - 可能我需要一个更合适的表名 - )

此外,我想知道如何生成类别和子类别的数组,以便我也可以返回该信息

1 个答案:

答案 0 :(得分: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;