sen*_*nty 2 for-loop laravel laravel-5 laravel-query-builder
我有一个查询需要检查多个 orWhere 语句。
$cases = ['john', 'kate', 'mike', 'rob', 'josh', 'moe']
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我想使用 where 作为 for 循环。
Cat::where(function($q) use ($cases) {
$q->where('name', 'john')->orWhere('name', 'kate'); // etc
})->get();
Run Code Online (Sandbox Code Playgroud)
有没有一种更干净的方法来将其与 for 循环一起使用,以便它可以动态链接orWhere?
您可以使用此代码
Cat::whereIn('name', $cases);
Run Code Online (Sandbox Code Playgroud)
如果您不愿意,也可以使用此代码
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();
Run Code Online (Sandbox Code Playgroud)