Laravel Eloquent查询不起作用

时间:2017-05-15 22:11:56

标签: php laravel eloquent laravel-5.4

$demos = Demo::whereIn('store_id', [1,2,4], function($query){
                    $query->where('status', 1);
        })->paginate(10);

我知道这不起作用,但我怎样才能使用这种逻辑......?

  

[选择*来自'演示'其中store_id在1,2,4和status = 1]

2 个答案:

答案 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
);