Obtenga columnas específicas utilizando la función “Con ()” en Laravel Eloquent
Tengo dos mesas,User
yPost
. UnoUser
puede tener muchosposts
y unopost
pertenece a una solauser
.
En miUser
modelo tengo unhasMany
relación...
public function post(){
return $this->hasmany('post');
}
Y en mipost
modelo tengo unbelongsTo
relación...
public function user(){
return $this->belongsTo('user');
}
Ahora quiero unir estas dos tablas usandoEloquent with()
pero quieren columnas específicas de la segunda tabla. Sé que puedo usar el Generador de consultas, pero no quiero.
Cuando en elPost
modelo que escribo ...
public function getAllPosts() {
return Post::with('user')->get();
}
Se 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 usandowith()
de la segunda mesa. ¿Cómo puedo hacer eso?