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();