我可以做模型 - > where('id',ARRAY)多个条件吗?

时间:2015-06-08 10:21:30

标签: php laravel laravel-4 laravel-5 where

标题说明了一切。

我知道我可以这样做:

DB::table('items')->where('something', 'value')->get()

但我想检查多个值的where条件,如下所示:

DB::table('items')->where('something', 'array_of_value')->get()

有没有一种简单的方法可以做到这一点?

5 个答案:

答案 0 :(得分:69)

whereIn()

$items = DB::table('items')->whereIn('id', [1, 2, 3])->get();

答案 1 :(得分:8)

如果你需要几个参数:

$ids = [1,2,3,4];
$not_ids = [5,6,7,8];
DB::table('table')->whereIn('id', $ids)
                  ->whereNotIn('id', $not_ids)
                  ->where('status', 1)
                  ->get();

答案 2 :(得分:3)

您可以使用以下解决方案之一:

$items = Item::whereIn('id', [1,2,..])->get();

或:

$items = DB::table('items')->whereIn('id',[1,2,..])->get();

答案 3 :(得分:0)

您可以使用接受数组作为第二个参数的path.package

whereIn

您可以多次连锁。

DB:table('table')
   ->whereIn('column', [value, value, value])
   ->get()

这将使用DB:table('table')->where('column', 'operator', 'value') ->where('column', 'operator', 'value') ->where('column', 'operator', 'value') ->get(); 运算符。如果您需要AND,则可以使用OR方法。

对于高级orWhere语句

where

答案 4 :(得分:-1)

数组格式Laravel中的位置和选择条件

use DB;

$conditions = array(
    array('email', '=', 'user@gmail.com')
);
$selected = array('id','name','email','mobile','created');
$result = DB::table('users')->select($selected)->where($conditions)->get();