【问题标题】:laravel 4 restful controllers manuallylaravel 4 restful 控制器手动
【发布时间】:2015-01-15 01:58:07
【问题描述】:

在 laravel 文档中,他们解释了使用资源丰富的控制器来使用 REST 以及在控制器的方法中使用动词。

我已经手动列出了我的所有路线,如下所示: Route::get('users/{id}/friends', 'UsersController@friends');

我没有使用任何资源,只是方法和 uri。 我怎样才能让这平静下来?还是已经很平静了?那么如何以 RESTful 方式调用这些方法呢?我很困惑

【问题讨论】:

    标签: rest laravel controller


    【解决方案1】:

    REST 只不过是关于如何在 Web 中传输数据的约定。如果你想对它挑剔,请查看:http://en.wikipedia.org/wiki/Representational_state_transfer#Architectural_constraints

    对于 laravel,当你像这样通过 CLI 生成控制器时:

    php artisan controller:make UsersController
    

    Laravel 会自动为您需要处理的各种操作(创建、存储、销毁、更新等)创建样板。然后您可以设置路由。当然,对于大多数控制器来说,你不需要全部。

    这是来自 Phillip Brown 博客的一组有用的链接:

    http://culttt.com/2013/07/01/setting-up-your-first-laravel-4-controller/

    http://culttt.com/2013/08/12/building-out-restful-controller-methods-in-laravel-4/

    【讨论】:

    • 鉴于我的所有路由都被称为 Route::get() 或 Route::post () ,您能否告诉我如何以 RESTFUL 方式从应用程序调用我的网址?我不想使用来自 laravel 的任何助手。
    • 以 RESTfully 方式使用 URL 是使用正确的 HTTP 方法的问题。您在浏览器中输入的任何内容都是 GET,并且会查找 Route::get()。说显示您可以访问localhost/users/{id} 的特定用户资源。假设您想更新您必须 POST(实际上是 PUT)到 localhost/users/{id} 的资源,但这次您将发送其他数据以使用 post 参数更新资源,就像您通常在表单或 ajax 调用中所做的那样。真的没有什么更多的了。它只是在访问 URL 时使用适当的方法(GET、POST、PUT、DELETE)。
    • 顺便说一句,PUT 和 DELETE 不受全球支持,这就是为什么 laravel 在您调用类似以下内容时通过自动向表单添加 _method 隐藏字段来欺骗这一点:echo Form::open(array('url' => 'foo/bar', 'method' => 'put'))
    【解决方案2】:

    如果你想让它成为 RESTful,在 laravel 中最简单的方法是执行 Route::resource('user', 'UserController),它会自动为你提供 on the laravel web page 显示的路由。

    但是,如果您尝试以 REST 方式查找好友,您可能需要创建一个 /friends/ 资源,然后将其注册为 Route::resource('friends', 'FriendController')。有关关系/朋友方面的更多信息,我建议阅读 this question from 2011,虽然不是特定于 laravel,但它确实回答了有关 REST 的问题。

    【讨论】:

    • 是的,您正在使用资源方法。但是我已经按照我的描述手动描述了我的所有路线。有没有办法直接以 RESTful 方式使用它,因为我已经提到了该方法。
    猜你喜欢
    • 2013-08-26
    • 2013-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-21
    • 2014-01-24
    • 2013-10-12
    • 1970-01-01
    相关资源
    最近更新 更多