2017-01-11 30 views
1

在laravel enquent查询如何使这两个选择在一个。如何使用多重比较与()在laravel雄辩查询?

我也觉得如果条件太多,我也用太多的where子句。

->where('trade_status', '<>', 'TRADE_FINISHED') 
->where('trade_status', '<>', 'TRADE_SUCCESS') 
+1

可能重复[如何使用Laravel Eloquent创建多个where子句查询?](http://stackoverflow.com/questions/19325312/how-to-create-multiple-where-clause-query-using-laravel - 偶尔) – KhorneHoly

+0

是的,它已经在那里回答了。 –

回答

2

使用whereNotIn()

->whereNotIn('trade_status', ['TRADE_FINISHED', 'TRADE_SUCCESS']); 
+1

是啊!很好的回答! –

1

在这里,在documentation你可以看到

可以传递的条件数组一样

$users = DB::table('users')->where([ 
    ['status', '=', '1'], 
    ['subscribed', '<>', '1'], 
])->get(); 

你的病情应该像

DB::table('your_table')->where([ 
    ['trade_status', '<>', 'TRADE_FINISHED'], 
    ['trade_status', '<>', 'TRADE_SUCCESS'], 
])->get(); 
+0

这里如果我可以省略=字符? –

+0

@KrisRoofe你能指出一行吗? –

+1

是的,使用一个简单的地方,=可以像这样省略( 'status','1'),我会在复杂的地方检查它是否可以。 –