У меня есть две таблицы: 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() из второй таблицы. Как я могу это сделать?