2017-12-05 8 views
1

이 질문에 DBMS 관련 답변이 두 개 이상 있지만 이해가되지 않을 수 있으므로 여기에 설명되어 있습니다.몽구스의 populate() 메소드에 해당하는 Laravel (Eloquent) 동등 물

그래서 내 응용 프로그램이 비동기 적으로 백엔드에서 데이터를 가져 오려면 UserPosts과 같이 말해야합니다. 내가 가지고하고 싶은 결과는의 배열을 포함하는 내 VueVM의 데이터에 users 개체입니다

mounted: function() { 
    axios.get('/users') 
     .then((response) => { 
      this.users = response.data; 
     }) 
     .catch(function (err) { 
      // Handle this 
     }); 
} 

: 그것은 좋은 것입니다 그래서 내가 좋아하는 뭔가를 쓰고, 프론트 엔드에 Axios의와 Vue2을 사용하고 있습니다 각 User에 대해 posts 다음과 같이 현재 내 백엔드 측 컨트롤러에서 사용자 지정 연관 배열을 구축 :

$posts = Post::where('user_id', $id)->get(); 
return json_encode(['user' => $user, 'posts' => $posts]); 

을 또는, 나 또한 매우 편리하다 has_many 방법을 사용하지만, 나는 꽤 추한 및 부족 재사용이 솔루션을 발견 할 때 가능 .

Mongoose와 MongoDB를 사용하면 populate() 메서드를 사용하지만 Eloquent와 동등한이 메서드는 검색 할 수 없습니다.

의견이 있으십니까?

답변

0

당신은) (A 게시물을 정의하여 사용자 모델에 관계 한 경우, 사용자를 검색 할 때, 할 수 있습니다 열망로드 관련 데이터 :

$users = User::with('posts')->get(); 

또는 특정 사용자 :

$user = User::with('posts')->find($id); 

그런 다음 $user->posts에는 관련 Post 모델 모음이 포함됩니다.

https://laravel.com/docs/5.5/eloquent-relationships

+0

그래, 그게 다야. 죄송합니다. 문서에 더 많은 시간을 할애해야합니다. 심층적 인 정보를 원하는 사람은 올바른 섹션 : https://laravel.com/docs/5.5/eloquent-relationships#eager-loading – ibanjo