【问题标题】:Laravel 4 Resource Controllers: How to manage non collection resourcesLaravel 4 资源控制器:如何管理非集合资源
【发布时间】:2015-01-18 21:46:29
【问题描述】:

假设我有以下 restful URI:

api/v1/users/username1
api/v1/users/username2
api/v1/users/username3

Laravel 支持上述 URI 的资源控制器和路由。我不确定我的术语是否正确,但我喜欢将这些类型的 URI 称为基于集合,即api/v1/users 将显示用户列表,api/v1/users/{username} 显示用户集合的特定用户。

但是如果我们有以下 URI 会怎样;

api/v1/users/username1/profile
api/v1/users/username2/profile
api/v1/users/username3/profile

我喜欢将这些资源称为“单一”资源,即它们不是集合的一部分。每个用户都有一个单独的个人资料。

我的问题:有没有办法在 laravel 资源控制器中对此进行编码?

【问题讨论】:

    标签: rest laravel-4


    【解决方案1】:

    只需在资源控制器之前/之后定义路由:

      Route::resource('users', 'UserController');
      Route::get('api/v1/users/{user}/profile', 'UserController@showProfile');
    

    另外 - 我建议您阅读 Phil Sturgeon 的这篇名为“Beware the Route to Evil”的博文,了解有关不使用资源控制器的一些想法。

    【讨论】:

    • 啊,好的。所以没有办法在资源控制器/路由中处理。只需要创建一个常规路线?想象一下,如果我需要嵌套资源控制器,这将变得一团糟。 api/v1/users/{user}/profile/addresses/{id}
    • 因此来自 Phil 的博客文章 - 只需在 routes.php 中组织您的路线。完全控制比默认使用资源控制器更容易
    • 刚刚浏览过博客,我同意这些观点。感谢您为我指明正确的方向。
    猜你喜欢
    • 1970-01-01
    • 2013-07-30
    • 2013-02-19
    • 2020-02-12
    • 1970-01-01
    • 2013-08-20
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    相关资源
    最近更新 更多