我正在将以下查询转换为 Eloquent :
select * from db.users
Where (linker is null) and (admin_published is null)
union
select * from db.users
Where (linker is not null) and (linker_verified = 2) and (admin_published is null)
Eloquent :
\App\User::where('linker', null)->
Where('admin_published', null)->
orWhere('linker','!=',null)->where('linker_verified', '=',2)->
orWhere('admin_published','!=', 1)->get();
它没有给我linker
不为空的记录。
最佳答案
Laravel 为您提供了 Eloquent 方法 union()
。你试过这个吗?您可以使用 whereNull('column')
和 whereNotNull('column')
$first_query = \App\User::whereNull('linker')
->whereNull('admin_published');
$users = \App\Users::whereNotNull('linker')
->where('linker_verified', '=', 2)
->whereNull('admin_published')
->union($first_query)
->get();
关于php - 原始查询到 Eloquent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45825243/