骨干 PUT 请求和拉拉维尔


Backbone PUT requests and Laravel

我正在使用骨干前端和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()现在返回提交的表单数据,非常困惑!

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

在前端,应创建主干模型来存储数据的状态。
当您在主干模型上定义 id 时,在将其保存到服务器之前,将发生 PUT 请求。

因此,我将首先使用您的主干模型管理所有前端应用程序数据,通过在模型上使用主干"保存"来持久化数据。

你使用 Input::

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