【问题标题】:Laravel 5 MethodNotAllowedHttpException PUTLaravel 5 MethodNotAllowedHttpException PUT
【发布时间】:2016-05-27 16:14:15
【问题描述】:

我正在尝试更新用户,但是当我点击提交按钮时,Laravel 会抛出以下错误:

“RouteCollection->methodNotAllowed(array('GET', 'HEAD', 'POST')) 在 RouteCollection.php 第 206 行”。

我认为PUT方法是不允许的,但我不明白原因。请求永远不会到达UserController@update

我已经配置了这样的资源路由:

Route::resource('backend/users', 'Backend\UsersController');

php artisan route:list 的输出是:

【问题讨论】:

标签: php laravel methods laravel-5


【解决方案1】:

我这样解决问题:一定是表单的post action错误;

<form method="POST" action="10.241.229.1/backend/users/{{$user->id}}"; accept-charset="UTF-8">

将要更新的 id 添加到操作中。

【讨论】:

    【解决方案2】:

    在表单中使用这样的put方法,更多https://laravel.com/docs/5.2/routing#form-method-spoofing

    {{ method_field('PUT') }}
    

    【讨论】:

    • 嗨,谢谢我已经启用了隐藏方法
      10.241.229.1/backend/users" accept-charset="UTF-8">
    • 如果你已经完成了,那就太好了。如果我的代码可以工作,那么让这个答案被接受,这将对其他人有所帮助。
    • 很抱歉,但是 {{ method_field('PUT') }} 不能解决问题方法不允许。我已经用 Form::model($user,['method' => $user->exists ? 'put' : 'post'] 配置了隐藏方法我仍然在同一点。
    • @simonvolk 你没有查看我提供的 laravel 官方文档的 url 吗?
    【解决方案3】:

    这个问题有点晚了。

    根据我的经验,出现这种错误有两个原因:

    1. Laravel docs 所说,HTML 表单不支持PUTPATCHDELETE 操作。因此,在定义从 HTML 表单调用的 PUTPATCHDELETE 路由时,您需要在表单中添加隐藏的 _method 字段。

    2. 1234563 /p>

    【讨论】:

      猜你喜欢
      • 2015-09-11
      • 2015-08-30
      • 1970-01-01
      • 2019-06-15
      • 1970-01-01
      • 1970-01-01
      • 2015-07-28
      • 2015-09-22
      • 2016-05-23
      相关资源
      最近更新 更多