2017-03-15 2 views
1

Ich bin derzeit meine Anwendung optimieren und eine Sache ist nur die Dinge aus der Datenbank auswählen, die wirklich benötigt werden.Laravel wählen Sie bestimmte Spalten, aber mit Beziehungen

Zum Beispiel, wenn ich ein User-Objekts bin Abrufen ich es normalerweise tun, wie folgt:

$user = User::where($attribute, '=', $value)->first(); 

Dieser Code gibt mich mit allen Spalten ein vollständiges Benutzerobjekt zurück. Meine Benutzer Tabelle ziemlich groß ist, so dachte ich, es ist eine gute Idee um die Spalten nur wählen, die ich so brauchen:

$user = User::where($attribute, '=', $value)->first($columns); 

Dies wird auch wie erwartet funktioniert. Aber mein Problem ist, sobald ich Spalten spreche, die Beziehungen der Variablen $ user funktionieren nicht mehr, weil es kein Objekt mehr ist.

Meine Frage: Ist es möglich, nur ein paar Spalten auszuwählen, aber noch in der Lage sein, Beziehungen wie

$user->parents 

Dank zu nutzen!

Antwort

0

Try This

$user = User::where($attribute, '=', $value)->select($columns)->first(); 
0

Fügen Sie einfach alle Fremdschlüssel für die Beziehungen, die Sie erhalten möchten. Zum Beispiel, wenn Sie parent() Beziehung verwenden möchten, fügen Sie einfach den Schlüssel zum $columns:

array_push($columns, 'parent_id'); 

Danach werden Sie in der Lage sein, die parent() Beziehung zu verwenden.

Verwandte Themen