$demos = Demo::whereIn('store_id', [1,2,4], function($query){
$query->where('status', 1);
})->paginate(10);
我知道这不起作用,但我怎样才能使用这种逻辑......?
[选择*来自'演示'其中store_id在1,2,4和status = 1]
答案 0 :(得分:2)
如果我理解正确,你需要这样的东西。
$demos = Demo::whereIn('store_id', [1, 2, 4])->where('status', 1)->paginate(10);
链接"其中"雄辩的方法==" AND"数据库查询条件。
答案 1 :(得分:-1)
有时,最好不要使用ORM`ish方法
他们说,旧的纯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
);