2017-08-03 4 views
0

Wie bestimmte Spalten in der Elterntabelle während der Abfrage mit eifrigen Laden auswählen?Laravel Eloquent - Wählen Sie bestimmte Spalten Kombinieren mit Eager Loading

$accounts = \App\Account::with('status')->get(); 

Return

[{"id":1,"username":"kuhn.desiree","email":"[email protected]","last_login":"2009-04-02 23:21:20","created_at":"2017-07-15 19:07:03","updated_at":"2017-07-15 19:07:03","status_id":13,"status":{"id":13,"name":"ab","desc":"Quos quas.","created_at":"2017-07-15 19:07:01","updated_at":"2017-07-15 19:07:01"}}] 

Ich möchte nur username und email auf Account Tisch.

Antwort

0

ein Weg ist mit select() Methode

$accounts = \App\Account::with('status')->select('username', 'email','status_id')->get(); 

Wenn Sie möchten Wenn Sie eine Collection abrufen, die die Werte einer einzelnen Spalte enthält, können Sie die Zupfmethode verwenden:

accounts = \App\Account::with('status')->pluck('username', 'email'); 
+0

Ich habe versucht, aber leider gibt es Null-Status zurück. {"username": "kuhn.desiree", "email": "[email protected]", "status": null} –

+0

@YosuaLijantoBinar check this '' 'select ('Benutzername', 'E-Mail' , 'status') '' ' –

+0

schön, bitte aktualisieren Sie Ihre Antwort mit' $ accounts = \ App \ Account :: mit ('status') -> wählen Sie ('username', 'email', 'status_id') -> get(); 'und ich werde akzeptieren. –

0

Sie möchten einen ausgewählten Anruf hinzuzufügen:

$accounts = \App\Account::with('status')->select('username', 'email')->get(); 
+0

Ich habe versucht, aber leider gibt es Null-Status zurück. '{" username ":" kuhn.desiree "," email ":" [email protected] "," status ": null}' –

0

Versuchen Sie diesen Code zu verwenden:

$accounts = \App\Account::with(['status' => function($q) 
      { 
       $q->select('username', 'email'); 
      }])->get(); 
+0

Soweit ich weiß, filtert dieser Code nur die untergeordnete Tabelle. –

Verwandte Themen