【问题标题】:Backbone PUT requests and Laravel骨干 PUT 请求和 Laravel
【发布时间】:2015-01-15 20:04:55
【问题描述】:

我正在使用 Backbone 前端和 Laravel REST api 后端,在发送 PUT 请求然后尝试在 API 端读取该数据时,我看到了一些奇怪的行为。

如果我执行以下操作,

Input::all() 这将返回一个 NULL 数组,但是如果我明确说明我想要从输入中获得哪个属性,那么它工作正常,即Input::get('name') 返回“Jon Doe”我试图找到一些关于这个问题的资源,2 个解决方案我发现是,

<input type="hidden" name="_method" value="PUT" /> 添加到我用于编辑模型的表单中,这似乎不起作用,第二个是将来自Backbone 的请求的内容类型从application/json 更改为x-www-form-urlencoded,但我不知道如何做到这一点。

从 PUT 请求中获取数据的最简单方法是什么 - 理想情况下,我不想使用 Backbone.emulateHTTP,因为我不完全了解如何区分 POST,以进行编辑、保存和删除。

==============更新==============

奇怪的是,我刚刚删除了我正在使用的方法的所有代码,Input::all() 现在返回提交的表单数据,好困惑!

【问题讨论】:

    标签: php api rest backbone.js laravel


    【解决方案1】:

    为了让 Laravel4 与 Backbone 一起工作,你应该创建一个带有后端的 REST 接口,实现使用 Laravel 规定的 RESTful 方法的 Resourceful 控制器。

    在前端,您应该创建 Backbone 模型来存储数据的状态。
    当您在 Backbone 模型上定义一个 id 并将其持久化到服务器之前,会发生 PUT 请求。

    因此,我将首先使用您的 Backbone 模型管理所有前端应用程序数据,并通过在模型上使用 Backbone 'save' 来保存数据。

    您使用 Input::all() 还是 Input::get('name') 无关紧要,取决于您的要求。通常,控制器仅用作您将参数发送到存储库/模型的通道。我倾向于使用 Input::all() 并在存储库或模型中管理我的条件(单个参数)。

    【讨论】:

      猜你喜欢
      • 2014-09-05
      • 2014-08-26
      • 2016-06-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-31
      • 2017-05-29
      • 1970-01-01
      相关资源
      最近更新 更多