Eu tenho duas mesas User
e Post
. Um User
pode ter muitosposts
e um post
pertence a apenas um user
.
No meu User
modelo eu tenho uma hasMany
relação ...
public function post(){
return $this->hasmany('post');
}
E no meu post
modelo eu tenho uma belongsTo
relação ...
public function user(){
return $this->belongsTo('user');
}
Agora eu quero juntar essas duas tabelas usando Eloquent with()
mas quero colunas específicas da segunda tabela. Sei que posso usar o Query Builder, mas não quero.
Quando no Post
modelo eu escrevo ...
public function getAllPosts() {
return Post::with('user')->get();
}
Ele executa as seguintes consultas ...
select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)
Mas o que eu quero é ...
select * from `posts`
select id,username from `users` where `users`.`id` in (<1>, <2>)
Quando eu uso ...
Post::with('user')->get(array('columns'....));
Ele retorna apenas a coluna da primeira tabela. Quero colunas específicas usando a with()
partir da segunda tabela. Como eu posso fazer isso?
$query->select('id','username');
, eu estava recebendo #Trying to get property of non-object