Ich habe zwei Tische Userund Post. Man Userkann viele haben postsund man postgehört nur einem user.
In meinem UserModell habe ich eine hasManyBeziehung ...
public function post(){
return $this->hasmany('post');
}
Und in meinem postModell habe ich eine belongsToBeziehung ...
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 Postich 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