我的一个表中有两行,如下所示:
id product_id target_product_id description type
1 206587 456 sdfgdfgdfg 0
2 456 206587 fgdgfhghfgfdsgfdghfghfsd 0
使用id
1
查看行的模型时,我希望根据product_id
和target_product_id
的反转位置获取第二行。所以我建立了一个关系:
'linked_product_relation' => array(self::HAS_ONE, 'Accessory', '',
'on'=>'linked_product_relation.target_product_id = product_id
AND link_product_relation.product_id = target_product_id')
然而,它似乎只返回null
。我检查了link_product_relation
到表的链接,我没有得到SQL错误,只返回null
。如果我只使用link_product_relation.product_id = product_id
的关系,虽然我确实得到了一个响应,但只有我正在查看的行。我似乎错过了什么。
如何获得所需的输出?
当我添加一个替换关系的函数时:
function getTwinned(){
$a=Accessory::model()->findByAttributes(array('target_product_id'=>$this->product_id, 'product_id'=>$this->target_product_id));
if($a===null)
return null;
else
return $a;
}
效果很好。