J'ai deux tables, Useret Post. On Userpeut en avoir plusieurs postset on postn'appartient qu'à un seul user.
Dans mon Usermodèle, j'ai une hasManyrelation ...
public function post(){
return $this->hasmany('post');
}
Et dans mon postmodèle j'ai une belongsTorelation ...
public function user(){
return $this->belongsTo('user');
}
Maintenant, je veux joindre ces deux tables en utilisant Eloquent with()mais je veux des colonnes spécifiques de la deuxième table. Je sais que je peux utiliser le Générateur de requêtes, mais je ne veux pas.
Quand dans le Postmodèle j'écris ...
public function getAllPosts() {
return Post::with('user')->get();
}
Il exécute les requêtes suivantes ...
select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)
Mais ce que je veux, c'est ...
select * from `posts`
select id,username from `users` where `users`.`id` in (<1>, <2>)
Quand j'utilise ...
Post::with('user')->get(array('columns'....));
Il ne renvoie que la colonne de la première table. Je veux des colonnes spécifiques à with()partir de la deuxième table. Comment puis je faire ça?
$query->select('id','username');, jeTrying to get property of non-object