Laravel 8 在关联之后链式添加 orWhere 条件
如上所示,你可以在查询关联时自由添加其他约束。但是,在将 orWhere
子句链接到关联时要小心,因为 orWhere
子句将在逻辑上与关联约束处于同一级别:
$user->posts()
->where('active', 1)
->orWhere('votes', '>=', 100)
->get();
// select * from posts
// where user_id = ? and active = 1 or votes >= 100
在大多数情况下,你可以使用 约束组 在括号中对条件检查进行逻辑分组:
use Illuminate\Database\Eloquent\Builder;
$user->posts()
->where(function (Builder $query) {
return $query->where('active', 1)
->orWhere('votes', '>=', 100);
})
->get();
// select * from posts
// where user_id = ? and (active = 1 or votes >= 100)