2015-03-06 8 views
9

Ich habe ein Eloquent-Modell und im Modell verwende ich eine Bereichsabfrage, um einen Join zu tun. Das alles funktioniert gut, aber ich versuche herauszufinden, wie in der Bereich Abfrage nur bestimmte Spalten aus der Join-Tabelle auswählen.Laravel 5 Eloquenter Bereich Join und wählen Sie bestimmte Spalten

Hier ist die Methode in meinem Controller.

$accounts = Account::creator()->get(); 

Hier ist der Umfang Abfrage im Modell

public function scopeCreator($query) { 
     $query->leftJoin('users','users.id','=','accounts.creator_id'); 
} 

Dies funktioniert, aber es gibt alle die Spalten von Konten und Benutzer, aber ich möchte nur alle Spalten von Konten und nur 2 Spalten aus Benutzer.

ich schon versucht, diese ...

public function scopeCreator($query) { 
     $query->leftJoin('users','users.id','=','accounts.creator_id')->select(array('id','user_name')); 
} 

Jedoch gibt diese nur die zwei Felder von Benutzern und ignoriert die Spalten von Konten. Ich weiß, wie man das mit 2 verschiedenen Modellen macht, aber das bedeutet, dass ich ein nutzloses Modell erstellen muss. Diese Abfragefunktion für Bereiche ist großartig, wenn ich diesen Teil nur herausfinden kann.

Hilfe ist willkommen.

Antwort

13

Sie können dies versuchen:

->select('accounts.*', 'users.id as uid','users.user_name'); 
+1

, die perfekt ist ... Dank! – bakamike

+0

Am meisten Willkommen :-) –

Verwandte Themen