laravel - 在 Laravel 的查询构建器中使用变量(for 循环)
问题描述
我有一个查询需要检查多个 orWhere 语句。
$cases = ['john', 'kate', 'mike', 'rob', 'josh', 'moe']
在这种情况下,我想使用 where 作为 for 循环。
Cat::where(function($q) use ($cases) {
$q->where('name', 'john')->orWhere('name', 'kate'); // etc
})->get();
有没有一种更简洁的方法可以将它与 for 循环一起使用,以便它orWhere
即时链接?
解决方案
您可以使用此代码
Cat::whereIn('name', $cases);
如果您不这样做,您也可以使用此代码
Cat::where(function($q) use ($cases) {
$firstCase = array_shift($cases);
$q->where('name', $firstCase);
foreach($cases as $case) {
$q->orWhere('name', $case);
}
// other conditions this
})->get();
推荐阅读
- flutter - 方向生成器给出错误的方向
- .net - Xamarin,使用 .net Standard 2.0 和 Dependecy Services 创建 NuGet 包
- code-generation - 如何使用编写的 Xtend Generator 代码在 Xtext 中生成?
- azureservicebus - Azure 服务总线和 CAP 定理
- android - 如何在张量流上检测图像对象?
- android - 在后台使用 Fence API 是否需要 Android P 中的前台服务
- javascript - 在 setInterval 内安排 setTimeout
- git - 如何快速从 SVN 迁移到 Git?
- python - 在 Python 中连接到 MS Access
- python - 带轴的 Matplotlib 图例