laravel - 不使用查询启动查询生成器
问题描述
所以,我可以使用User::where('username', '!=', null)->get()
;
但是,我想使用从第一个条件开始的 if 条件来链接查询,where('username', '!=', null)
在这种情况下是不必要的。让我举一个伪例子:
我正在运行基于用户的报告,其中有多个字段。我想像这样初始化查询构建器,并使用 if 语句链接查询。
$user = User::class(); // I know I can't use this line, however you'll get the idea.
if (isset($gender)) {
$user = $user->where('gender', $gender);
}
if (isset($age)) {
$user = $user->where('age', $age);
}
$users = $user->get()
是开始查询(在第一行)的唯一方法:
$user = User::where('username', '!=', null)
解决方案
您正在寻找
$userQuery = User::query();
然后,添加一些附加条款:
$userQuery->where(...);
然后,提供一个closure
( ->first()
, ->get()
, 等) 来获取您的用户:
$users = $userQuery->get();
推荐阅读
- javascript - 部署到 IIS 7.5 服务器的 React/dotnetcore 3.1 mvc 应用程序正确加载,但对 API 的 javascript 调用每个返回 index.html
- angular - 无法在 Angular 8 上使用 HttpHeaders 定义自定义标头
- javascript - HTML & Javascript - 选择下拉菜单选项时显示文本
- gtk3 - 尝试在 C 中使用 cario 导航 gdk_pixbuf 起点的问题
- python - Subprocess.call 外部程序
- c - 无法使用 C 在 Linux 中创建链表
- windows - Windows 10 最新更新 - Laravel Valet - 在一个驱动器中创建站点链接
- react-native - 在不支持它的国家/地区测试 google pay
- javascript - 无法在 GHCJS 中触发`dispatchEvent`
- javascript - 如何使用 puppeteer 点击动态 xpath?