尝试发布时,在RouteCollection.php中使用Laravel 5.3 MethodNotAllowedHttpException

时间:2016-11-04 08:06:58

标签: php laravel

在我的routes / web.php文件中

Route::get('/users', [
    'uses' => 'Admin\UsersController@Index',
    'as' => 'users'
]);
Route::post('/adduser', [
    'uses' => 'Admin\UsersController@Create',
    'as' => 'adduser'
]);

这是我的index.blade.php

<form action="{{route('adduser')}}" class="form-horizontal" method="post">
                    {!! csrf_field() !!}
                    <input name="_method" type="hidden" value="PATCH">
                    <div class="form-body">
                        <div class="form-group">
                            <label class="col-md-3 control-label">User Name</label>
                            <div class="col-md-4">
                                <input type="text" id="name" class="form-control input-circle" placeholder="Kullanıcı Adını Yazınız">
                            </div>
                        </div>

当我尝试发布此提交表单或其他提交表单时,我收到一条错误,其中显示了RouteCollection.php第218行和第34行中的&#34; MethodNotAllowedHttpException。我很感激任何帮助来解决这个错误。希望你们帮助我。

问候。

3 个答案:

答案 0 :(得分:1)

您应该将路线更改为patch以使其正常工作:

Route::patch('/adduser', [
    'uses' => 'Admin\UsersController@Create',
    'as' => 'adduser'
]);

或将_method更改为POST

<input name="_method" type="hidden" value="POST">

答案 1 :(得分:1)

您从表单中传递了PATCH方法。但是在您的路线文件中,您定义了POST路线,而不是PATCH

Route::post('/adduser', [
    'uses' => 'Admin\UsersController@Create',
    'as' => 'adduser'
]); 

从表单中删除此行:

<input name="_method" type="hidden" value="PATCH">

否则,您可以将值PATCH更改为POST

<input name="_method" type="hidden" value="POST">

答案 2 :(得分:0)

更改&#34; _method&#34;的值发布。由于您的路线和表格方法都是POST。

<input name="_method" type="hidden" value="POST">