我的一张表中有两行,如下所示:
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;
}
它完美地工作。