Abrufen bestimmter Spalten mit der Funktion „With ()“ in Laravel Eloquent
Ich habe zwei Tische,User
undPost
. EinUser
kann viele habenposts
und einpost
gehört nur einemuser
.
In meinemUser
Modell habe ich einhasMany
Beziehung...
public function post(){
return $this->hasmany('post');
}
Und in meinempost
Modell habe ich einbelongsTo
Beziehung...
public function user(){
return $this->belongsTo('user');
}
Jetzt möchte ich diese beiden Tabellen mit verbindenEloquent with()
aber wollen bestimmte Spalten aus der zweiten Tabelle. Ich weiß, dass ich den Abfrage-Generator verwenden kann, aber ich möchte nicht.
Wenn in derPost
Modell schreibe ich ...
public function getAllPosts() {
return Post::with('user')->get();
}
Es werden folgende Abfragen ausgeführt ...
select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)
Aber was ich will, ist ...
select * from `posts`
select id,username from `users` where `users`.`id` in (<1>, <2>)
Wenn ich benutze ...
Post::with('user')->get(array('columns'....));
Es wird nur die Spalte aus der ersten Tabelle zurückgegeben. Ich möchte bestimmte Spalten verwendenwith()
vom zweiten Tisch. Wie kann ich das machen?