Tengo dos mesas User
y Post
. Uno User
puede tener muchos posts
y uno post
pertenece a uno solo user
.
En mi User
modelo tengo una hasMany
relación ...
public function post(){
return $this->hasmany('post');
}
Y en mi post
modelo tengo una belongsTo
relació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 Post
modelo 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