【发布时间】:2014-07-10 14:18:59
【问题描述】:
我正在从事一个拥有艺术家资源的项目。艺术家资源有一个称为播放列表的子资源。更多的播放列表还有另一个嵌套的子元素,称为歌曲。所以基本上艺术家可以有很多播放列表,而播放列表可以有很多歌曲。
Route::resource('artists', 'ArtistsController');
Route::resource('artists.playlists', 'PlaylistsController');
Route::resource('artists.playlists.songs', 'SongsController');
当我在/artists 尝试一个简单的获取请求时,一切正常,我能够返回所有艺术家。同样,/artists/1 的 get 请求将返回 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?
【问题讨论】:
标签: php inheritance laravel-4 laravel-routing