我想在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正在运行,关系 - 不是。我做错了什么?
答案 0 :(得分:1)
尝试以下未经测试的代码
'comments' => array(self::HAS_MANY, 'Comment', 'cid','condition'=>'module=:param1 AND section=:param2','params' => array(':param1' => 'quotes',':param2' => 'quote',)),