[CakePHP3.7] Impossible to generate condition with empty list of values

スポンサーリンク
CakePHP

where()メソッドで
$query->where([‘User.id IN’=>$blacklist_users_ids]);
こんな感じで絞り込みたい場合。
$blacklist_users_idsで一つでもデータがあればいいのですが1つもない状態だと。
下記のようなエラーが出てしまいます。
Impossible to generate condition with empty list of values

バージョン
CakePHP 3.8


まぁ、そりゃそうだ…。
なんかもっといい方法があるような気がするけど、とりあえず手っ取り早く解決した方法がこれ

if(empty($blacklist_users_ids)){
  $blacklist_users_ids[0]=0;
}
$query->where(['User.id IN'=>$blacklist_users_ids]);

id=0のデータはないので、とりあえず存在しないデータを突っ込んでおく。
あんまりスマートじゃない気がするけど、これで意図通りの動作になりました。

[quads id=1]