php – Eloquent – 多个WHERE LIKE条件
发布时间:2020-12-13 21:56:43 所属栏目:PHP教程 来源:网络整理
导读:我目前正在尝试在我的数据库中实现搜索关键字.因此我分隔了一个用逗号分隔的字符串,所以我得到一个包含可变数量元素的数组(一个关键字). 我知道我可以使用这样一个雄辩的结构: $products = Product::where([['keywords','LIKE',%samsung%],[keywords,'s7']]
我目前正在尝试在我的数据库中实现搜索关键字.因此我分隔了一个用逗号分隔的字符串,所以我得到一个包含可变数量元素的数组(一个关键字).
我知道我可以使用这样一个雄辩的结构: $products = Product::where([['keywords','LIKE',%samsung%],[keywords,'s7']])->paginate(15); 找到一个产品的关键字samsung,galaxy,s7. 现在我需要这个东西,但是为可变数量的搜索查询部分自动生成,所以对于数组中的每个关键字,我需要添加一个[‘keywords’,’LIKE’,’…’] … 如何使用Laravels Eloquent做到这一点? 解决方法
使用闭合.首先,确保将关键字列表存储到数组等中.然后 …
$keywords = ['samsung','s7','what else']; $products = Product::where(function ($query) use ($keywords) { foreach ($keywords as $keyword) { $query->orWhere('keyword','like',$keyword); } })->paginate(15); 其他例子 $keywords = [ ['name',$searchQuery],['category_id','=',$selectedSubcategory],]; $products = Product::where(function ($query) use ($keywords) { foreach ($keywords as $keyword) { $query->where($keyword); } })->paginate(15); 除了其他 $keywords = [ ['name',['please_id',$learnPhpArray],]; $products = Product::query(); foreach ($keywords as $keyword) { $products = $products->where($keyword); } return $products->paginate(15); orWhere做了什么?它是否用AND连接查询部分? 不,用OR.作为逆(?),默认情况下它本身就是AND. 参考 > https://laravel.com/api/5.2/Illuminate/Database/Eloquent/Builder.html#method_where (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |