質問: $this->Articles->find() ->contain(['Categories','Users']) ->where(['Categories.id' => $category,'title like ' => '%'.$keyword.'%']) ->orWhere(['Categories.id' => $category,'Users.username like ' => '%'.$keyword.'%']) ->orWhere(['Categories.id' => $category,'content like ' => '%'.$keyword.'%']); ``` 上記のコードで実行した場合には、カテゴリーの条件をA タイトルの条件をB 作者条件をC 記事の内容条件をDとすると {(AandB)or(AandC)or(AandD)}となってほしかったのですが、実際はデバグキットでSQL文を確認すると {(AandB)or(AandC)orAorD}となっていました。 対策を教えて頂きたくよろしくお願いします。
回答: 下記の方法で自己解決できました。お騒がせしました。 ->where([ 'Categories.id' => $category, 'OR' => [['title like ' => '%'.$find.'%'], ['Users.username like ' => '%'.$find.'%'], ['content like ' => '%'.$find.'%']], ]);