2014-07-09 6 views
0

저는 아티스트 리소스가있는 프로젝트에서 작업하고 있습니다. 아티스트 리소스에는 재생 목록이라는 하위 리소스가 있습니다. 그리고 더 많은 재생 목록에는 노래라는 또 다른 중첩 된 아이가 있습니다. 그래서 기본적으로 아티스트는 많은 재생 목록을 가질 수 있으며 재생 목록은 많은 곡을 가질 수 있습니다. Laravel 4 중첩 된 리소스 논리 문제

Route::resource('artists', 'ArtistsController'); 
Route::resource('artists.playlists', 'PlaylistsController'); 
Route::resource('artists.playlists.songs', 'SongsController'); 

내가 /artists 모두에서 간단한 GET 요청을 시도

잘 작동하고 나는 모든 예술가를 반환 할 수 있어요. 마찬가지로 /artists/1에서 GET 요청은 /artists/1/playlists 내가 가진 외래 키 1.

이제 문제와 모든 재생 목록의 기록, 즉 아티스트 ID 1에 속하는 모든 재생 목록을 반환합니다 아이디 1. 아티스트를 반환하는 논리로 될 때 /artists/1/playlists/1에 액세스합니다. 반환해야하는 항목은 무엇입니까? id가 1 인 재생 목록 또는 아티스트 ID가 1 인 첫 번째 재생 목록 레코드를 반환해야합니까?

두 번째 것은 나에게 더 논리적 인 것처럼 보입니다. 그러나 삭제 요청을 처리하는 방법과 같은 다른 문제가 발생합니다. /artists/1/playlists/1 아티스트 ID 1의 첫 번째 재생 목록을 삭제하려고하지만 ID가 없습니다.

어쩌면 나는 중첩 된 리소스를 올바르게 처리하는 방법을 정확히 알지 못한다. 왜냐하면 나는 초보자이기 때문이다. 어떻게해야합니까? 나는 그들을 중첩시켜야하지 않느냐. 그리고 각각에 대해 별도의 리소스가 있습니다. /artists/playlists/songs처럼?

답변

0

나는 이와 같은 것들을 위해 별도의 컨트롤러를 가지고있을 것이다.

아티스트 컨트롤러가 있고 delete 또는 create 또는 edit과 같은 방법이있는 재생 목록 컨트롤러가있을 수 있습니다.

일을 더 체계화하고 고유 한 네임 스페이스에 연결합니다.

+0

OP가 그가 이미 제안한 컨트롤러를 가지고 있다고 언급 한 것 같습니다. – lozadaOmr