나는 두 개의 테이블을 가지고 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
모델 I 쓰기 ...
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()
두 번째 테이블에서 특정 열을 사용하고 싶습니다 . 어떻게해야합니까?
$query->select('id','username');
, 내가 얻고 있었다Trying to get property of non-object