Php Zend_表关系

Php Zend_表关系,php,zend-framework,orm,relationship,Php,Zend Framework,Orm,Relationship,我知道这个问题肯定被问了好几次,但我找不到(可以理解的)答案 我已经创建了表“spots”和“members”以及关系表“spotmembers” 在zend框架中,我使用zend_Db_表,但我无法从请求中的关系中检索对象 以下是我的课程: class Model_DbTable_Member extends Zend_Db_Table { protected $_name = 'members'; protected $_primary = 'id'; protected $_depende

我知道这个问题肯定被问了好几次,但我找不到(可以理解的)答案

我已经创建了表“spots”和“members”以及关系表“spotmembers”

在zend框架中,我使用zend_Db_表,但我无法从请求中的关系中检索对象

以下是我的课程:

class Model_DbTable_Member extends Zend_Db_Table {
protected $_name = 'members';
protected $_primary = 'id';
protected $_dependentTables = array('Model_DbTable_SpotMember');

class Model_DbTable_SpotMember extends Zend_Db_Table {
protected $_name = 'spotmembers';
protected $_primary = 'id';
protected $_referenceMap = array(
    'Spot' => array(
        'columns' => 'id_spot',
        'refTableClass' => 'Model_DbTable_Spot',
        'refColumns' => 'id'
    ),
    'Member' => array(
        'columns' => 'id_member',
        'refTableClass' => 'Model_DbTable_Member',
        'refColumns' => 'id'
    )
);
我想提出一个请求,以便检索与Spot对象相关的成员对象,您知道怎么做吗


问候。

你可以试着用这个来建立一个简单的关系

$Spot = new Model_DbTable_SpotMember();
$SpotDB = $Spot->find($id)->current();

$Members = $SpotDB->findParentModel_DbTable_Member();
Zend_Debug::dump($Members->toArray();
对于一种关系,有人会这样想:

$Members = $Spot->findModel_DbTable_MemberViaModel_DbTable_SpotMember('MemberName','MemberInfo');
Zend_Debug::dump($Members->toArray();
所有文档,可在此处找到:

示例9:


致命错误:调用未定义的方法Model_DbTable_SpotMember::findParentModel_DbTable_Member()。。。我在尝试使用zend魔法函数时已经发现了这个错误。知道吗?对不起,是我的错。。。查看已编辑的源代码并使用
find()->current()
返回的
$SpotDB
,它可以工作!如果我想让所有成员都有关联怎么办?导致此current()仅捕获行集的第一行。谢天谢地,您在
$Members
中拥有所有“成员”。。。我只是看着你有一个“很多”的关系。。。我的例子适用于一个关系“一家公司”。我将在答案中添加更多信息。再次:致命错误:调用未定义的方法Model_DbTable_SpotMember::findModel_DbTable_MemberViaModel_DbTable_SpotMember(),我真的不习惯这种关系管理。。。有什么想法吗?
$bugsTable = new Bugs(); // Your "Spot"
$bugsRowset = $bugsTable->find(1234); // Loading "Spot" and retreive RowSet
$bug1234 = $bugsRowset->current(); // Retrieve

$productsRowset = $bug1234->findManyToManyRowset('Products', // Your "Members" table
                                             'BugsProducts', // YOur "relation" table
                                             'Bug'); // The crurent table "Spot"