Yii复合键与自定义参数的关系

时间:2012-09-05 11:11:58

标签: activerecord yii has-many composite-key relation

我想在ActiveRecord中使用复合键。 我有两张桌子。

报价和评论。 报价包含pk - id ; 评论pk是复合材料 - 模块部分 cid

模块 - 模块名称,其中包含评论。

部分 - 此模块的部分

cid - 识别者,在此情境中,这是引用的ID。

在评论中我定义了主键,如此。

public function primaryKey()
{
    return array('module', 'section', 'cid');
}

接下来,我想获取那些与引号相关的记录。 所以,在报价中我宣布了关系:

'comments' => array(self::HAS_MANY, 'Comment', 'module, section, cid', 'params' => array(
                ':ypl0' => '"quotes"',
                ':ypl1' => '"quote"',
                ':ypl2' => 'id'
            )),

所需的结果是:

SELECT * FROM quotes q

LEFT JOIN comments c ON (c.cid = q.id AND module = "quotes" AND section = "quote")

WHERE c.id IS NULL

SQL正在运行,关系 - 不是。我做错了什么?

1 个答案:

答案 0 :(得分:1)

尝试以下未经测试的代码

'comments' => array(self::HAS_MANY, 'Comment', 'cid','condition'=>'module=:param1 AND section=:param2','params' => array(':param1' => 'quotes',':param2' => 'quote',)),