【问题标题】:Is it possible to combine RESTful Controllers and Resource Controllers in Laravel?是否可以在 Laravel 中结合 RESTful 控制器和资源控制器?
【发布时间】:2014-07-13 08:34:50
【问题描述】:

我几乎完成了使用 Laravel 2.4.3 框架的网站开发。

现在我们将开始为该网站开发移动应用程序。我在 Internet 上进行了一项小型研究,发现 Laravel 支持 RESTFUL 控制器,我可以使用它来创建 Web 服务。因此,在我的服务器和移动应用程序之间进行通信。

我的问题是:

是否有可能并且实用同时制作与 RESTFUL 和资源控制器相同的控制器?

或者将它们分开更好

谢谢

更新 1

在我看来,他们每个人都应该是一个单独的控制器,我只是想向你们作为专家确定。

【问题讨论】:

  • 你的问题是关于在 Laravel 中拥有 RESTful 控制器的可能性还是关于它与 ResourceController 的分离?

标签: php rest laravel laravel-4


【解决方案1】:

正如 Laravel 自己的文档中直接说明的那样,资源控制器是围绕资源的 RESTful 控制器。因此,通过拥有资源控制器,您已经拥有 RESTful 功能,并添加了资源处理操作。 Laravel 文档说:

资源控制器使构建 RESTful 控制器变得更加容易 围绕资源。例如,您可能希望创建一个控制器 管理您的应用程序存储的“照片”。使用 controller:make 命令通过 Artisan CLI 和 Route::resource 方法,我们可以快速创建这样一个控制器。

并且这些动作也被列出了相关 HTTP-Verb 的规范:

Actions Handled By Resource Controller

    Verb    Path                        Action                         Route Name
    GET     /resource     index         resource.index
    GET     /resource/create            create                          resource.create
    POST    /resource                   store                           resource.store
    GET     /resource/{resource}        show                            resource.show
    GET     /resource/{resource}/edit   edit                            resource.edit
    PUT/PATCH   /resource/{resource}    update                          resource.update
    DELETE  /resource/{resource}    destroy                            resource.destroy

不过,以上路线是针对文档中给出的示例控制器:

Route::resource('photo', 'PhotoController');

因此,通过访问domain/resource,如果请求使用 POST 动词提供服务,则 post 操作将处理它,否则如果 GET,则 GET 操作将介入。

你可以在这里阅读:

http://laravel.com/docs/controllers#resource-controllers

已编辑

关于你关于分离的问题,我应该说,如前所述,是的。

您拥有负责处理资源管理和操作的控制器,而有时您需要 RESTful 控制器以不同的方式处理您的请求。

例如,您有一个处理数据处理和计算的控制器,那么它与资源管理没有任何关系。

【讨论】:

    【解决方案2】:

    还是分开比较好?

    是的。总是。

    路由中的自动化是魔鬼,随着时间的推移,我越来越讨厌它。

    http://philsturgeon.co.uk/blog/2013/07/beware-the-route-to-evil

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-05-21
      • 2013-06-04
      • 2014-05-29
      • 1970-01-01
      • 2013-12-01
      • 2013-07-30
      • 1970-01-01
      相关资源
      最近更新 更多