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