Ich habe zwei Tische User
und Post
. Man User
kann viele haben posts
und man post
gehört nur einem user
.
In meinem User
Modell habe ich eine hasMany
Beziehung ...
public function post(){
return $this->hasmany('post');
}
Und in meinem post
Modell habe ich eine belongsTo
Beziehung ...
public function user(){
return $this->belongsTo('user');
}
Jetzt möchte ich diese beiden Tabellen mit verbinden Eloquent with()
, möchte aber bestimmte Spalten aus der zweiten Tabelle. Ich weiß, dass ich den Query Builder verwenden kann, möchte es aber nicht.
Wenn Post
ich im Modell schreibe ...
public function getAllPosts() {
return Post::with('user')->get();
}
Es werden die folgenden 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 with()
aus der zweiten Tabelle verwenden. Wie kann ich das machen?
$query->select('id','username');
, bekam ichTrying to get property of non-object