当前位置: 代码网 > it编程>编程语言>Php > Laravel多条件where查询语句使用详解

Laravel多条件where查询语句使用详解

2024年05月18日 Php 我要评论
引言在使用 laravel 开发应用的时候,还是会经常遇到多条件的查询语句,比如一个网站的商品筛选页面就有可能是这样子:http://jd.com/products?color=black&s

引言

在使用 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 的多条件查询了!

以上就是laravel多条件where查询语句使用详解的详细内容,更多关于laravel多条件where查询的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com