Zend Framework Обрабатывает один ко многим - PullRequest
2 голосов
/ 09 апреля 2010

у меня 2 таблицы "пользователь", "контакт", отношение между двумя таблицами - один пользователь имеет много контактов

Table member 
m_id
name
------------
Table Contact
c_id
c_m_id
value

в классе Zend Model, я делаю это таким образом

/* Member.php */
     class Default_Model_DbTable_Member extends Zend_Db_Table_Abstract
     {
        protected $_name    = 'member';
        protected $_dependentTables = array('Default_Model_DbTable_Contact');
     }

/* Contact.php */
     class Default_Model_DbTable_Contact extends Zend_Db_Table_Abstract
     {
        protected $_name = 'contact';
        protected $_referenceMap = array(
                           'Member' => array(
                                    'columns'=> array('c_id'),
                                    'refTableClass'=> 'Default_Model_DbTable_Member',
                                    'refColumns'=> array('c_m_id')
                                   )       
    );
/* IndexController.php */
class IndexController extends Zend_Controller_Action
{
    public function indexAction()
    {   
        $m= new Default_Model_DbTable_Member();
        $row = $m->find(1);
        $data = $row->current();
        $data = $data->findDependentRowset('Default_Model_DbTable_Contact');
        print_r($data->toArray());
     }
}

Но я просто получаю неверный номер параметра: параметры не были привязаны, моя цель - найти подробную запись члена, и она также содержит массив, в котором хранится вся контактная информация (для этого я могу использовать метод соединения, но хочу попробовать функцию Zend)

Ответы [ 2 ]

0 голосов
/ 10 апреля 2010

Я всегда помещал $_dependentTables и $_referenceMap в обе связанные таблицы (контакт и участник). Вы пробовали это?

0 голосов
/ 09 апреля 2010

Вы пытались определить

 class Default_Model_DbTable_Member extends Zend_Db_Table_Abstract
 {
    protected $_name    = 'member';
    protected $_primary = 'm_id';  <---
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...