我有两个表,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()连接这两个表,但想要第二个表中的特定列。我知道我可以使用查询生成器,但我不想这样做。
当在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()指定列。我该怎么做呢?