私は2つのテーブルを持っていUser
ますPost
. 1 つは複数User
持つことができposts
、1 つは 1 つpost
だけに属しuser
ます。
私のUser
モデルでは、hasMany
関係があります...
public function post(){
return $this->hasmany('post');
}
そして、私のpost
モデルではbelongsTo
関係があります...
public function user(){
return $this->belongsTo('user');
}
今、これらの 2 つのテーブルを結合したいEloquent with()
のですが、2 番目のテーブルの特定の列が必要です。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()
2 番目のテーブルを使用して特定の列が必要です。どうやってやるの?