【发布时间】:2012-12-12 04:37:03
【问题描述】:
我正在研究如何在 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();
我有错误
致命错误:无法在第 2739 行的 [..]application/libraries/Datamapper.php 中使用 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 查询效果很好。
【问题讨论】:
标签: codeigniter codeigniter-datamapper