2017-08-22 1 views
0

ich die folgende Abfrage eloquent bin Umwandlung:Raw Abfrage beredt

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(); 

Es mir die Aufzeichnungen nicht geben, wo linker nicht null ist.

Antwort

1

Laravel gibt Ihnen eloquente Methode union(). Hast du das versucht? Sie können whereNull('column') und 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(); 

Lara docs verwenden.