Как определить отношения в Zend Framework

У меня есть две простые таблицы: Projects и SubProjects, в которых я хотел бы распечатать каждый подпроект с соответствующим проектом в таблице.

Итак, я написал это:

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'); ?>


person Rodrigo Souza    schedule 20.09.2010    source источник


Ответы (2)


Похоже, в вашем referenceMap определении отсутствует название правила.
Оно должно быть

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

Вы должны определить $_referenceMap и $_dependentTables во всех связанных классах таблиц. Когда вы закончите, он будет выглядеть почти зеркальным.

person chelmertz    schedule 20.09.2010