簡體   English   中英

如何在數組laravel 5.2中使用像運算符?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM