是否可以在Laravel中组合RESTful控制器和资源控制器?

时间:2014-07-13 08:34:51

标签: php rest laravel laravel-4

我几乎已经使用Laravel 2.4.3框架开发了一个网站。

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

我的问题是:

是否可以和实用同时制作与RESTFUL和资源控制器相同的控制器?

更好将它们分开?

由于

更新1

在我看来,他们每个人都应该是一个独立的控制者,我只想确保你们是专家。

2 个答案:

答案 0 :(得分:3)

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

  

资源控制器可以更轻松地构建RESTful控制器   围绕资源。例如,您可能希望创建一个控制器   管理您的应用程序存储的“照片”。使用   controller:通过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

尽管如此,上述路由适用于doc:

中给出的示例控制器
Route::resource('photo', 'PhotoController');

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

你可以在这里阅读:

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

<强> EDITED

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

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

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

答案 1 :(得分:0)

  

或者最好将它们分开?

是。总是

路由中的自动化是魔鬼,随着时间的推移,我逐渐厌恶它。

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