首页 文章

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

提问于
浏览
2

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

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

我的问题是:

是否有可能和 practical 同时制作与RESTFUL和资源控制器相同的控制器?

或它是 better 分开他们?

谢谢

更新1

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

2 回答

  • 0

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

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

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

  • 2

    或者最好将它们分开?

    是 . 总是 .

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

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

相关问题