【问题标题】:Laravel resource routing - update throws "method not allowed" errorLaravel 资源路由 - 更新抛出“方法不允许”错误
【发布时间】:2016-01-15 03:46:48
【问题描述】:

我有以下资源路线:

Route::resource('pools', 'PoolsController');

我还有一个应该发布到控制器的“更新”方法的编辑表单,设置如下:

{{ Form::open(array('route' => ['pools.update', $pool['id']])) }}

当我提交表单时,它会打开 www.domain.com/pools/6(6 是上面的 $pool['id'])。但是,它并没有在update() 方法中运行代码,而是抛出了一个错误:

Symfony \ Component \ HttpKernel \ Exception \ MethodNotAllowedHttpException

现在,到目前为止,我发现 Laravel 的错误报告非常无用,这也不例外。错误描述充其量是含糊不清的,无法帮助我解决问题。

我的印象是,在使用资源路由时,更新方法应该自动接收发布数据。它在之前的一些示例中也可以使用,使用相同的语法。

那么,谁能告诉我这里可能发生了什么?

【问题讨论】:

标签: php laravel laravel-4


【解决方案1】:

要在更新方法中运行代码,您必须欺骗 PUT 请求。看这里:Form Method Spoofing

【讨论】:

  • 对。请求类型错误。谢谢,会接受答案。这可能是一个题外话,但它会杀死 Laravel 只是说“更新方法需要 PUT 数据”而不是这个可能意味着任意数量不同事物的通用错误?
  • 如果你仔细想想,它实际上非常简单。用外行的话来说,“方法不允许”会读作“你还没有编写代码来处理这个方法”。还要检查the docs
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-25
  • 1970-01-01
  • 1970-01-01
  • 2013-10-30
  • 2014-09-26
  • 1970-01-01
相关资源
最近更新 更多