Obter colunas específicas usando a função “With ()” no Laravel Eloquent

Eu tenho duas mesas,User ePost. 1User pode ter muitosposts e umpost pertence a apenas umuser.

No meuUser modelo eu tenho umhasMany relação...

public function post(){
    return $this->hasmany('post');
}

E no meupost modelo eu tenho umbelongsTo relação...

public function user(){
    return $this->belongsTo('user');
}

Agora eu quero juntar essas duas tabelas usandoEloquent with() mas deseja colunas específicas da segunda tabela. Eu sei que posso usar o Query Builder, mas não quero.

Quando noPost 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'....));

Apenas retorna a coluna da primeira tabela. Eu quero colunas específicas usandowith() da segunda mesa. Como eu posso fazer isso?

questionAnswers(9)

yourAnswerToTheQuestion