Получить определенные столбцы, используя функцию «С ()» в Laravel Eloquent

У меня есть две таблицы,User а такжеPost, ОдинUser может иметь многоposts и одинpost принадлежит только одномуuser.

В моемUser модель у меня естьhasMany связь...

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

И по моемуpost модель у меня естьbelongsTo связь...

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

Теперь я хочу объединить эти две таблицы, используяEloquent with() но хочу конкретные столбцы из второй таблицы. Я знаю, что могу использовать Query Builder, но не хочу.

Когда вPost модель я пишу ...

public function getAllPosts() {
    return Post::with('user')->get();
}

Он запускает следующие запросы ...

select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)

Но то, что я хочу, это ...

select * from `posts`
select id,username from `users` where `users`.`id` in (<1>, <2>)

Когда я использую ...

Post::with('user')->get(array('columns'....));

Возвращает только столбец из первой таблицы. Я хочу, чтобы конкретные столбцы, используяwith() со второго стола. Как я могу это сделать?

Ответы на вопрос(1)

Ваш ответ на вопрос