Laravel 4嵌套资源逻辑问题

时间:2014-07-09 21:42:02

标签: php inheritance laravel-4 laravel-routing

我正在开发一个拥有艺术家资源的项目。艺术家资源具有称为播放列表的子资源。还有更多的播放列表有另一个嵌套的孩子叫做歌曲。因此,艺术家基本上可以有很多播放列表,反过来播放列表可以有很多歌曲。

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

当我在/artists尝试一个简单的获取请求时,一切正常,我能够归还所有艺术家。同样,/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一样?

1 个答案:

答案 0 :(得分:0)

对于像这样的东西,我会有一个单独的控制器。

您可以拥有艺术家控制器,然后是播放列表控制器,其中包含deletecreateedit等方法。

它使事情更有条理,并将它们与自己的命名空间联系起来。