1

モデルのコメントと多くの関連があるモデルの投稿があります。

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) でも一致しません。

4

1 に答える 1