如何使用来自数据库的数据构建条件 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);
});
})
我想用来自数据库的数据创建条件查询。现在我正在使用查询和过滤方法,但我想知道是否有任何方法可以为此构建查询?
示例: 我有一个存在 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);
});
})