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?

Antworten auf die Frage(9)

Ihre Antwort auf die Frage