如何在Zend Framework中定义关系

时间:2010-09-20 18:45:35

标签: zend-framework zend-db zend-db-table

我有两个简单的表:ProjectsSubProjects我想在每个子项目中打印一个表中的相应项目。

所以我写了这个:

class Admin_Model_Projects extends Zend_Db_Table_Abstract
{
    protected $_name = 'main_projects';
    protected $_primary = 'mai_id';
    protected $_sequence = true;
    protected $_dependentTables = array('Admin_Model_SubProjects');
    ....

而且:

class Admin_Model_SubProjects extends Zend_Db_Table_Abstract
{
    protected $_name = 'sub_projects';
    protected $_primary = 'sub_id';
    protected $_sequence = true;
    protected $_referenceMap = array(
        'columns' => 'mai_id',
        'refTableClass' => 'Admin_Model_Projects',
        'refColumns' => 'mai_id'
    );
    .....

我想知道为什么在输入No reference from table Admin_Model_SubProjects to table Admin_Model_Projects时我会<?php echo $entry->findParentRow('Admin_Model_Projects'); ?>

2 个答案:

答案 0 :(得分:1)

您的referenceMap定义中似乎缺少规则名称 它应该是

protected $_referenceMap = array(
    'Project' => array(
        'columns' => 'mai_id',
        'refTableClass' => 'Admin_Model_Projects',
        'refColumns' => 'mai_id'
    )
);

答案 1 :(得分:0)

您应该在所有相关的表类中定义$_referenceMap$_dependentTables。完成后,它会近似地反映出来。

相关问题