如何使用来自数据库的数据构建条件 eloquent 查询

How to build conditional eloquent query with data which comes from database

我想用来自数据库的数据创建条件查询。现在我正在使用查询和过滤方法,但我想知道是否有任何方法可以为此构建查询?

示例: 我有一个存在 2 列的 table -> user_id 和 view_preference 如果 view_preference 是 0 我想 select 所有记录。但是如果它是 1 我只想 select 只匹配 user_id 行。

当前工作代码:

那你想要这样的东西。

WHERE view_preference = 0
OR (
    view_preference = 1
    AND (
        owner_id = ?
        OR supervisor_id = ?
    )
)

将此附加到您的查询构建器(在调用 get() 之前)应该会给您想要的结果。

->where('view_preference', 0)
->orWhere(function ($or) use ($request) {
    $or->where('view_preference', 1)
       ->where(function ($and) use ($request) {
           $and->where('owner_id', $request->user()->id)
               ->orWhere('supervisor_id', $request->user()->id);
       });
})