CakePHPでpaginateを使ってor検索したい時

条件は、$conditionsに配列で入れますが、

$conditions[‘Hoge.field1’] = “フィールド1の条件”;
$conditions[‘Hoge.field2’] = “フィールド2の条件”;

と条件設定した後、

$results = $this->paginate(‘hoge’, $conditions);

とすると、これはフィールド1とフィールド2がそれぞれ、条件として設定したものに該当するレコードが$resultsに格納されます。

この時、$conditionsをdebugすると

array(
‘Hoge.field1’ => ‘フィールド1の条件’,
‘Hoge.field2’ => ‘フィールド2の条件’
)

となっており、これはAND条件となっています。

$conditions[‘Hoge.field1’] = “フィールド1の条件” AND $conditions[‘Hoge.field2’] = “フィールド2の条件”

これを、OR条件にしたい時は、

array( ‘or’ =>
array(
‘Hoge.field1’ => ‘フィールド1の条件’,
‘Hoge.field2’ => ‘フィールド2の条件’
   )
)

にする必要があります。

やったことは、

$FREE_KEYWORD[‘Hoge.field1’] = “フィールド1の条件”;
$FREE_KEYWORD[‘Hoge.field2’] = “フィールド2の条件”;

として、

$conditions[‘or’] = $FREE_KEYWORD;

とすると、

array( ‘or’ =>
array(
‘Hoge.field1’ => ‘フィールド1の条件’,
‘Hoge.field2’ => ‘フィールド2の条件’
   )
)

のようになります。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク