2014-07-09 115 views
0

我正在研究一個具有藝術家資源的項目。藝術家資源有一個稱爲播放列表的子資源。另外更多的播放列表還有另一個名爲歌曲的嵌套小孩。所以基本上藝術家可以有很多播放列表,並且播放列表可以有很多歌曲。Laravel 4嵌套資源邏輯問題

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

當我嘗試在/artists一切簡單的GET請求工作正常,我能夠返回所有的藝術家。類似地,獲取請求/artists/1將返回藝術家ID爲1. /artists/1/playlists將返回屬於藝術家ID 1的所有播放列表,即所有播放列表記錄具有外鍵1.

現在我遇到的問題是邏輯,即當我訪問/artists/1/playlists/1,它應該返回什麼?它應該返回播放列表與id 1或屬於藝術家id 1的第一個播放列表記錄。

第二個似乎更符合我的邏輯,但後來我遇到了其他問題,如如何處理刪除請求/artists/1/playlists/1,因爲我我正嘗試刪除藝術家ID 1的第一個播放列表,但我沒有它的ID。

也許我不完全知道如何正確處理嵌套資源,因爲我是一個新手。 我該怎麼辦?我應該不要將它們嵌套。併爲每個單獨的資源。像/artists/playlists/songs

回答

0

我會有這樣的東西一個單獨的控制器。

你可以有一個藝術家控制器,然後是一個播放列表控制器,它可以使用像deletecreateedit這樣的方法。

它使事情更有條理,並將它們綁定到自己的名稱空間。

+0

我想OP已經提到他已經有了你正在建議的控制器? – lozadaOmr