2016-10-26 4 views
1

Ich möchte nur das Modell laden, um später wheres usw. hinzufügen zu können.Laravel nur laden Modell

$query = Users; 

if($request->filter == 1) { 
    $query = $query->where('user_access', 'admin'); 
} 

if($request->otherFilter == 1) { 
    $query = $query->where('user_email', ''); 
) 

$query->get(); 

Obwohl die Verwendung von $ query = Benutzer; funktioniert nicht ..?

Antwort

1

Sie können es verwenden, indem eine Illuminate\Database\Eloquent\Builder Instanz wie das Erstellen:

$query = Users::query(); 

und dann können Sie weitere Abfragen in Query Builder-Instanz hinzufügen.

1

Sie können nur eine instanse des Users Modell mit erstellen:

$query = new Users; 

Und dann mit ihm arbeiten.

0

Sie sollten in Erwägung ziehen, lokale Abfragebereiche mit Eloquent zu verwenden, wenn Sie viele verschiedene Abfragen durchführen möchten. Laravel Eloquent Query Scopes

//App\User.php 

    public function scopePopular($query) 
    { 
     return $query->where('votes', '>', 100); 
    } 

    $users = App\User::popular()->orderBy('created_at')->get(); 

Sie können benutzerdefinierte Abfragen statt langen ausführlichen schaffen.

+1

Die Frage ist, wie man mehr Abfragen durch die Filter kettet, nicht darum, wie sauber der Code ist. –