Php Zend_表关系
我知道这个问题肯定被问了好几次,但我找不到(可以理解的)答案 我已经创建了表“spots”和“members”以及关系表“spotmembers” 在zend框架中,我使用zend_Db_表,但我无法从请求中的关系中检索对象 以下是我的课程: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
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"