天儿真好,
我遇到通过Chrome Postman向控制器发出PUT请求的问题,PUT数据不存在,POST数据工作正常。
我之前已经执行过作曲家更新,以确保最新版本的供应商产品可用,甚至删除了bootstrap / compiled.php。
是否有其他人有类似的问题?
更新功能,其中section_id和数据在响应中都为空:
public function update($id)
{
$section_id = Input::get('section_id');
$data = Input::all();
return Response::json(array('id' => $id, 'section_id' => $section_id, 'data' => $data));
}
我已经将代码一直调试到ParameterBag.php和$ this->请求的参数列表为空,我不确定什么应该包含任何值,但是通过代码输入值都是空的。不知道现在该做什么,没有使用post而不是put。
答案 0 :(得分:9)
PUT参数不能“开箱即用”,因为PHP本身对它们有一些安全限制。请参阅:http://www.php.net/manual/en/features.file-upload.put-method.php
Laravel确实为此实现了一个常见的解决方法。
在Postman(或您的表单,或卷曲,或您正在使用的任何客户端)中,只需添加一个URL参数名称:“_ method”值:PUT
示例1: ?_method = PUT
示例2: < input type =“hidden”name =“_ method”value =“PUT”/>
Laravel使用symfony Http Foundation来检查_method变量,如果它存在,它会根据其值而不是实际使用的HTTP方法进行路由。
答案 1 :(得分:2)
您必须发送一个POST请求,并添加一个值为_method
的额外参数PUT
,它会正常工作。