0

ActiveRecordで複合キーを使いたい。私は2つのテーブルを手に入れました。

引用とコメント。引用には pk- idが含まれます。コメント pk は複合 - modulesectioncidです

module - コメントの元となるモジュール名。

section - このモジュールのセクション

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 は機能していますが、関係はありません。私が間違っていることは何ですか?

4

1 に答える 1

1

次のテストされていないコードを試してください

'comments' => array(self::HAS_MANY, 'Comment', 'cid','condition'=>'module=:param1 AND section=:param2','params' => array(':param1' => 'quotes',':param2' => 'quote',)),
于 2012-09-06T07:39:59.267 に答える