2017-06-28 7 views
0

で "NOT IN" の例は、クックブックにあります:SQLで"IN" とCakePHP3

$query = $cities->find() 
    ->where(function ($exp, $q) { 
     return $exp->notIn('country_id', ['AFG', 'USA', 'EST']); 
}); 

これはにaequivalentする必要があります。 COUNTRY_ID NOT IN( 'AFG'、 'USA'、 'EST')

ここで変数を使用しようとしています。残念ながら、これはうまくいかないでしょう:

$query = $cities->find() 
    ->where(function ($exp, $q, $variable) { 
     return $exp->notIn('country_id', $variable); 
}); 

アイデアはありますか?

+0

'関数($ EXP、$ qを)($変数)を使用し、' – arilia

+0

、ありがとう、先生 – DeVolt

+0

あなたは変数継承を意味し、形質が全く違うものです。) – ndm

答えて

0

私は常にINとNOT INを使用する最も簡単な方法を見つけるのCakePHP

には次のようである
$query = $cities->find() 
    ->where(['country_id IN' => $variable]) 

詳しい情報in節は、本の次のリンクにあります。また、列の型に値を自動的にキャストするためにも使用できます。私にとっては、それはより読みやすくなります。私は完全な形質忘れました

https://book.cakephp.org/3.0/en/orm/query-builder.html#automatically-creating-in-clauses

+1

ありがとう!それはさらにうまくいく! – DeVolt

0

それは "使用" と連携し、以下を参照してください自動生成にPHP: Anonymous Functions

$query = $cities->find() 
    ->where(function ($exp, $q) use ($variable) { 
     return $exp->notIn('country_id', $variable); 
}); 
関連する問題