Tengo dos mesas Usery Post. Uno Userpuede tener muchos postsy uno postpertenece a uno solo user.
En mi Usermodelo tengo una hasManyrelación ...
public function post(){
return $this->hasmany('post');
}
Y en mi postmodelo tengo una belongsTorelación ...
public function user(){
return $this->belongsTo('user');
}
Ahora quiero unir estas dos tablas usando Eloquent with()pero quiero columnas específicas de la segunda tabla. Sé que puedo usar el generador de consultas, pero no quiero hacerlo.
Cuando en el Postmodelo escribo ...
public function getAllPosts() {
return Post::with('user')->get();
}
Ejecuta las siguientes consultas ...
select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)
Pero lo que quiero es ...
select * from `posts`
select id,username from `users` where `users`.`id` in (<1>, <2>)
Cuando uso ...
Post::with('user')->get(array('columns'....));
Solo devuelve la columna de la primera tabla. Quiero columnas específicas usando with()de la segunda tabla. ¿Cómo puedo hacer eso?
$query->select('id','username');, estaba obteniendoTrying to get property of non-object