0

has-and-belongs-to-many リレーションシップ (メンバーとイベントなど) の 2 つのテーブルと結合テーブル (MemberEvents など) がある場合、イベントがメンバーとの条件付きリレーションシップで存在することを指定するにはどうすればよいですか? 、イベントのいくつかの基準に基づいて、メンバーのグループを選択したいですか? コントローラーコードではなく、モデルコードを使用してそれを行う必要があります-結局のところ、ファットモデル、シンコントローラーです。

Cakephp のマニュアルはこの点についてあまり明確ではなく、次のコード (これは私が望むことを行います) という事実によって悪化しています。

public $hasAndBelongsToMany = array(
    'Member' => array(
        'className' => 'Member',
        'unique' => 'keepExisting'
    ),
    'ConfirmedMembers'=> array(
        'className' => 'Member',
        'unique' => 'keepExisting',
        'conditions' => array('EventsMember.is_confirmed'=>1)
    ),
    'UnconfirmedMembers'=> array(
        'className' => 'Member',
        'unique' => 'keepExisting',
        'conditions' => array('EventsMember.is_confirmed'=>0)
    )
);

.. SQLite では問題なく動作しますが、MySQL では動作しません。MySQL で何が起こるか? これ:

エラー: SQLSTATE [42S22]: 列が見つかりません: 1054 不明な列 'Event.course_id' in 'where 句'

(そのエラーの詳細はこちら: http://pastebin.com/5byPu9NR )

どんな助けでも大歓迎です。

4

1 に答える 1