Zend框架处理一对多

时间:2010-04-09 10:26:30

标签: zend-framework

我有2个表“用户”,“联系人”, 两个表之间的关系是一个用户有很多联系

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

在zend模型类中,我是这样做的

/* 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());
     }
}

但我得到的参数号无效:没有参数绑定,我的目标是搜索成员详细记录,它还包含一个存储所有联系信息的数组(我可以使用join方法来做到这一点,但我只是想尝试zend功能)

2 个答案:

答案 0 :(得分:0)

您是否尝试过定义

 class Default_Model_DbTable_Member extends Zend_Db_Table_Abstract
 {
    protected $_name    = 'member';
    protected $_primary = 'm_id';  <---

答案 1 :(得分:0)

我总是将$_dependentTables$_referenceMap放在两个连接的表格中(联系人和会员)。你试过吗?

相关问题