モデルのコメントと多くの関連があるモデルの投稿があります。
Post には、Comment の外部キーである主キー post_id があります。
これらの両方に可視列があります。
Post.visible オプションに関する有効なクエリがあり、AND を追加して、Post.visible 値のいずれかを持つすべての投稿を検索する必要があります。
これらの投稿には、Comment.visible 値 = 1 を持つすべてのコメントが必要です。
私のコード:
$conditions = array(
"OR" => array(
"Post.visible" => array(
1,
2,
3,
4
),
),
"AND" => array (
"Comment.visible" => 1
)
);
$result = $this->Post->find('all', array(
'order' => 'Post.created DESC',
'conditions' => $conditions
));
AND なしの結果は OK です (ただし、visible = 0 のコメントも取得します)。
条件 "Comment.visible" => 1 を has manyassociation に入れると、うまく機能します (ただし、他の場所で可視性 0 のコメントを取得する必要があるため、これを行うことはできません)。
を使用すると、次のエラーが表示されます。
エラー: SQLSTATE [42S22]:列が見つかりません: 1054 不明な列 'Comment.visible' が 'where 句' にあります
SQL をダンプすると、コメント テーブルは SELECT 句 (または LEFT JOIN) でも一致しません。