我正在研究如何在 ORM Datamaper 中创建自我关系(上游)加入。我的自我关系类看起来:
<?php
class Prospect extends DataMapper{
var $has_one =array(
'parent' => array(
'class' => 'prospect',
'other_field'=>'prospect'
),
'prospect' => array(
'other_field' => 'parent'
)
);
}
我试着列出
include_related (parent)
$p->include_related('parent')->get();
我有错误致命错误:不能[..]application/libraries/Datamapper.php
在第 2739 行使用 Prospect 类型的对象作为数组
我可以
$p->include_related('prospect')->get();
但在这种情况下,我有一个错误的加入。
SELECT `prospects`.*, `prospect_prospects`.`id` AS prospect_id, `prospect_prospects`.`name` LEFT OUTER JOIN `prospects` prospect_prospects ON `prospects`.`id` = `prospect_prospects`.`parent_id`
结果显示关系父->子(下游关系)不是子->父(上游关系)我正在寻找:
SELECT `prospects`.*, `prospect_prospects`.`id` AS prospect_id, `prospect_prospects`.`name` LEFT OUTER JOIN `prospects` prospect_prospects ON `prospects`.`parent_id` = `prospect_prospects`.`id`
任何提示如何做到这一点,我必须改变它?以及应该如何看一个好的上游关系类/php 代码?
ps:直接SQL查询效果很好。