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?

Respuestas a la pregunta(9)

Su respuesta a la pregunta