【问题标题】:Laravel PUT request parameterLaravel PUT 请求参数
【发布时间】:2016-06-22 03:39:08
【问题描述】:

当路线是:

  Route::post('/abcd',...); 

然后在控制器中我得到这样的参数:

   $r->get('param')   // with Request $r

但是虽然路由是 PUT 请求类型:

   Route::put('/abcd,...);

该代码不起作用。它没有得到参数的值。

【问题讨论】:

  • 你想达到什么目标?
  • 我用postman来测试。方法是 PUT,参数 'status' = 1。在服务器端,我可以获取参数。
  • -- 请添加您的代码示例,以便我们找出问题所在,您可以在 put 和 post 中以相同的方式访问参数。 -- 确保您没有使用 HTML 表单在此路由上发布,因为 HTML 表单不支持 PUT、PATCH 或 DELETE 操作。 -- 来源:laravel.com/docs/5.2/routing#form-method-spoofing
  • 谢谢大家,postman 请求带有 Put 参数,然后 laravel 无法获取。但是真正的代码(android)请求我可以收到它。这个问题是邮递员

标签: laravel


【解决方案1】:

尝试在 postman 中为 body 设置 x-www-form-urlencoded。

【讨论】:

  • 如果我们有用于更新用户个人资料图像的文件字段作为示例。
【解决方案2】:

路线:

$api->put('photos', 'App\Api\V1\Controllers\PhotoController@updatePhoto');

控制器代码:

public function updatePhoto(Request $request)
{
    $paramValue = $request->get('param_name');
}

对我来说工作得很好。

【讨论】:

  • 谢谢!它适用于android测试。 Postman 测试无法请求 put 参数。对不起,我没有足够的积分给你投票。
  • @SangTrần Postman 有一个单独的 put 方法来测试 put 请求,我们正在成功使用它。顺便说一句,我添加了这个答案来帮助你不要投票:)
  • 谢谢。我可以测试获取和发布方法。但使用 put, input::all() return null
  • 使用 $request->all() 代替 input::all()
【解决方案3】:

将方法设置为 POST 并添加带有 PUT 值 的 _method 字段

【讨论】:

  • 只在这个#efficiency上浪费了半天时间
【解决方案4】:
<input type="hidden" name="_method" value="PUT">

刚刚在表单中添加了一个额外的字段。 完美运行!

【讨论】:

    【解决方案5】:

    如果提交 API 请求并且您不希望您的开发人员发送带有 _method=PUT 请求变量的 POST 请求,请在此处查看解决方案:https://github.com/laravel/framework/issues/13457#issuecomment-341973180

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-26
      • 2011-11-03
      • 2017-11-18
      • 2017-05-29
      • 2015-01-15
      • 2021-06-24
      • 1970-01-01
      • 2019-12-20
      相关资源
      最近更新 更多