【问题标题】:Laravel 4 nested resources logic issueLaravel 4嵌套资源逻辑问题
【发布时间】: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


    【解决方案1】:

    我会有一个单独的控制器来处理这样的事情。

    你可以有一个艺术家控制器,然后是一个播放列表控制器,它有 deletecreateedit 这样的方法。

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

    【讨论】:

    • 我想 OP 已经提到他已经有了你建议的控制器?
    猜你喜欢
    • 2016-11-03
    • 2021-06-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    • 2020-11-18
    • 2011-05-25
    • 2021-06-01
    相关资源
    最近更新 更多