Php 使用主动模型变量的Yii关系
我的一个表中有两行,看起来像:Php 使用主动模型变量的Yii关系,php,yii,Php,Yii,我的一个表中有两行,看起来像: id product_id target_product_id description type 1 206587 456 sdfgdfgdfg 0 2 456 206587 fgdgfhghfgfdsgfdghfghfsd 0 查看带有id1的行的模型
id product_id target_product_id description type
1 206587 456 sdfgdfgdfg 0
2 456 206587 fgdgfhghfgfdsgfdghfghfsd 0
查看带有id
1
的行的模型时,我希望根据产品id
和目标产品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\u product\u relation
链接到该表,没有得到任何SQL错误,只有一个null
返回。如果我只使用了与link\u product\u relation.product\u id=product\u 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;
}
它工作得很好。您没有在代码中指定外键(
'
)。试着这样做:
'linked' => array(self::BELONGS_TO, 'Accessory', array(
'target_product_id'=>'product_id',
'product_id' => 'target_product_id',
)),
有关更多信息,请阅读本主题的手册和