$demos = Demo::whereIn('store_id', [1,2,4], function($query){
$query->where('status', 1);
})->paginate(10);
これは機能していないことが分かりましたが、どうすればこのロジックで作業できますか?Laravel Eloquentクエリが機能しない
$demos = Demo::whereIn('store_id', [1,2,4], function($query){
$query->where('status', 1);
})->paginate(10);
これは機能していないことが分かりましたが、どうすればこのロジックで作業できますか?Laravel Eloquentクエリが機能しない
時には、アプローチをORM`ish使用しないほうがよい[1,2,4でSTORE_IDとステータス= 1 'のデモ' SELECT * FROM]。
彼らは、古いプレーンSQLはあなたの親友だと言います。そう。
$data = \DB::select(
\DB::raw("SELECT * FROM `demos` WHERE `store_id` IN (:id1, :id2, :id3)"), array(':id1' => 1, ':id2' => 2, ':id3' => 3)
);
それとも、あなたはstore_id
エントリの未知の数、あなたは可能性がある場合:私はあなたがこのようなものが必要正しく理解していれば
$ids = array(1, 2, 3, 4, ...); // looks like unknown ammount of entries
$data = \DB::select(
\DB::raw("SELECT * FROM `demos` WHERE `store_id` IN (".rtrim(str_repeat('?,', count($ids)),',').")"), $ids
);
を。
$demos = Demo::whereIn('store_id', [1, 2, 4])->where('status', 1)->paginate(10);
連鎖「ここではEloquentメソッド==「AND」」データベースクエリ条件。
ORMを使用しないほうが良い時期がありますが、これはその1つではありません。 Eloquentはこのクエリに完全に適しています。あなたの2番目の例は、Eloquent – jfadich
で同じことを読むよりもはるかに読みにくいかもしれませんが、プレーンなSQLアプローチでは、好きなORMの目的のメソッドや関数についてドキュメントを検索する必要はありません。 –