![](/img/trans.png)
[英]How to use LIKE operator with AND operator in a query with Laravel
[英]how to use like operator in array laravel 5.2?
我想在數組中添加Like
運算符,但它給了我錯誤:
'where子句中的未知列'0'(
admin_id
= 2和0
=名稱,Like
=%zdgbdsh%),按id
asc限制10偏移量0)
這是我的查詢:
$conditions = array();
if(!empty($data['name'])) {
$conditions = array_merge($conditions,array('name','Like'=>'%'.$data['name'].'%'));
}
這是我的最終查詢:
$querys = DB::table('users')
->where($conditions)
->skip($iDisplayStart)->take($iDisplayLength)
->OrderBy($orderby,$dir)
->get();
注意:我不想直接在查詢中
where('users.name','like','%'.$data['name'].'%');**
我想在條件變量中做我正在使用laravel framework 5.2
這不是應用多個條件的最佳方法,但是您始終可以使用whereRaw
因此,根據條件循環遍歷一個數組。
$conditions = [];
if (!empty($data['name'])) {
$conditions = array_merge(
$conditions,
["name LIKE '%".$data['name']."%'"]
);
}
$query = DB::table('users');
// apply add raw conditions
foreach($conditions as $condition){ $query->whereRaw($condition); }
$query->skip($iDisplayStart)->take($iDisplayLength)
->OrderBy($orderby,$dir)
->get();
您還可以找到一些可以幫助您解決此類問題的軟件包。
希望能幫助到你
它應該是:
$conditions=array_merge($conditions,array('name' => 'Like %'.$data['name'].'%'));
我剛剛意識到,它將產生name = Like %data%
您可以將其更改為:
$conditions=array_merge($conditions,array('name', '%'.$data['name'].'%'));
以及在哪里使用:
->where(join(' LIKE ', $conditions))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.