编程语言
首页 > 编程语言> > Laravel 5:使用Route :: delete删除用户记录,在RouteCollection.php中获取MethodNotAllowedHttpException

Laravel 5:使用Route :: delete删除用户记录,在RouteCollection.php中获取MethodNotAllowedHttpException

作者:互联网

尝试在页面上执行此操作:

<form class="form-horizontal" role="form" method="DELETE" action="/user/{{ $user->id }}/delete">
      <button type="submit" class="btn btn-danger">
          Delete
      </button>
</form>

路线:

Route::delete('user/{id}/delete', ['middleware' => ['admin'], 
                                   'uses' => 'Auth\UserController@destroy']);

控制器:

class UserController extends Controller
{
    public function destroy($id)
    {
        DB::table('users')->where('id', $id)->delete();
        return view('admin/dash');
    }
}

我在RouteCollection.php中获得MethodNotAllowedHttpException.
我如何解决它?

解:

感谢乔希.我通过将形式更改为

<form method="POST" action="/user/{{ $user->id }}/delete">
                            <input type="hidden" name="_token" value="{{ csrf_token() }}">
                            <input type="hidden" name="_method" value="DELETE" />
                            <button type="submit" class="btn btn-danger">
                                Delete
                            </button>
                        </form>

解决方法:

在某些版本的HTML的某些实现中,仅允许GET和POST作为方法.

您可以通过添加自己处理的附加属性_method来解决此问题,或者可以使用JavaScript.

如果您使用的是Chrome,请检查开发人员工具中的“网络”标签以验证是否是问题所在,或将请求添加到帖子中以进行进一步的诊断.

有关更多详细信息,请参见here.

标签:laravel-5,routes,php
来源: https://codeday.me/bug/20191119/2035936.html