Php laravel中具有相同搜索字符串的多个列

Php laravel中具有相同搜索字符串的多个列,php,laravel,laravel-5,Php,Laravel,Laravel 5,在Laravel中,此问题的替代查询是什么 SELECT * FROM table_name WHERE CONCAT(id,name, address) LIKE '%same_string%' $field=['name','id','address']; $name=DB::Table('bookinfo')->其中(函数($query)使用($string,$field){ 对于($i=0;$iorwhere($field,'like','%'。$string'%');

Laravel

中,此问题的替代查询是什么

SELECT * 
FROM table_name 
WHERE 
    CONCAT(id,name, address) LIKE '%same_string%' 
$field=['name','id','address'];
$name=DB::Table('bookinfo')->其中(函数($query)使用($string,$field){
对于($i=0;$iorwhere($field,'like','%'。$string'%');
}      
})->get();

单独的列尝试此操作

$field = ['name','id','address'];
$name = DB::Table('bookinfo')->Where(function ($query) use($string, $field) {
             for ($i = 0; $i < count($field); $i++){
                $query->orwhere($field, 'like',  '%' . $string .'%');
             }      
        })->get();
** Laravel -在单个输入中的多个列中进行常规搜索

**

“名字”、“姓氏”、“职务”列中的一个用户表可用,我在任何值中都有一个输入搜索,然后在关联的数据获取和显示中查找所有列

DB::table("table_name")->whereRaw(" (`id` like ? or `name` like ? or `address` like ? ) ",["%".$same_string."%","%".$same_string."%","%".$same_string."%"])->get();

这不适用于concat函数。从DB返回NULL。我认为这段代码将成功执行,但我需要一个良好的结构化代码,如mysql查询。需要访问$field
$query->or where($field[$I])中的每个$I,如“
,您可以根据您的问题调整它
 $searchQuery = trim($request->query('search'));
 $requestData = ['firstname', 'lastname', 'job_title'];
  $user = User::where(function($q) use($requestData, $searchQuery) {
                        foreach ($requestData as $field)
                           $q->orWhere($field, 'like', "%{$searchQuery}%");
                })->get();