Laravel多条件where查询语句使用详解
发布:smiling 来源: PHP粉丝网 添加日期:2023-10-16 18:18:59 浏览: 评论:0
在使用 Laravel 开发应用的时候,还是会经常遇到多条件的查询语句,比如一个网站的商品筛选页面就有可能是这样子:
http://jd.com/products?color=black&size=xl&orderBy=price&sort=desc
使用多条件的 where 语句
这种方式的筛选其实我们就会使用多条件的 where 语句来做,比如我们通常会看到类似下面的代码:
- $query = Product::newInstance();
- if ($request->color) {
- $query->whereColor($request->color);
- }
- if ($request->size) {
- $query->whereSize($request->size);
- }
- if ($request->orderBy && $request->sort) {
- $query->orderby($request->orderBy, $request->sort);
- }
- $products = $query->get();
那如果说,你需要一个默认的排序结果的话,可以这样:
- ...其他代码
- if ($request->orderBy && $request->sort) {
- $query->orderby($request->orderBy, $request->sort);
- } else {
- $query->orderby('price', 'desc');
- }
- ...其他代码
使用条件性的 where 查询
然而如果说你使用条件性的 where 查询的话,可以这样:
- $products = Product::when($request->color, function ($query) use ($request) {
- return $query->whereColor($request->color);
- })
- ->when($request->size, function ($query) use ($request) {
- return $query->whereSize($request->size);
- })
- ->when($request->orderBy && $request->sort, function ($query) use ($request) {
- return $query->orderBy($request->orderBy, $request->sort);
- })
- ->get();
需要默认排序的情况则是这样:
- ...其他代码
- ->when($request->orderBy && $request->sort, function ($query) use ($request) {
- return $query->orderBy($request->orderBy, $request->sort);
- }, function ($query) {
- return $query->latest('price');
- })
- ...其他代码
到这里就可以解决 Laravel 的多条件查询了!
Tags: Laravel多条件 where查询语句
- 上一篇:Laravel Eloquent的九个实用特性详解
- 下一篇:最后一页
相关文章
- ·laravel多条件查询方法(and,or嵌套查询)(2021-12-28)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)