私はcakephp 2.3.0を使用しています。概要 - 私のコントローラーには、1 つ以上の ID 値を返すクエリがあります。次に、SQL IN キーワードを使用して、次のクエリでこれらの id 値を使用したいと考えています。私は自分が達成したいことを概念的に知っています。私はこれを CakePHP で正しい方法で行っていると思いますが、間違っている可能性があります。IN句を動的に構築するためのコーディング部分についてはよくわかりません。
これが私のコントローラーからの私のコードスニペットです:
$this->set('userIDs', $this->Activity->ActivitiesOfInterest->find('all',
array (
'conditions' => array ('ActivitiesOfInterest.activities_id' => $id),
'fields' => array ('ActivitiesOfInterest.user_id'))));
上記のコードは、期待する値を取得するので問題ありません。以下のコードでは、この部分 array(3, 4) をハードコーディングしました。これは、SQL IN キーワードに相当します。値 3、4 は userIDs 配列に格納されます。しかし、これは、上記のコードの配列から 3 と 4 の値を動的に構築する方法がわからないところです。もちろん、3 と 4 が常に値であるとは限りません。データベースの内容に依存するからです。配列をループして、ID のリストを作成する必要があると思います。私はまだ CakePHP に慣れていないので、これは経験豊富な人にとっては簡単な答えだと思います。
そして、はい、私のユースケースに基づいて、実際に deleteAll 操作を実行したいと思います。
$this->Activity->ActivitiesOfInterest->deleteAll(
array('ActivitiesOfInterest.user_id' => array(3, 4)), false);
ありがとうございます。