不允许的方法异常如下所示,此路由不支持POST方法。支持的方法:GET,HEAD,PUT,PATCH,DELETE。
<div class="container">
<div class="row justify-content-center">
<div class="col-md-12">
<div class="card">
<div class="card-header card-header-success">
<h4>Account Registration Form</h4>
</div>
<form method="POST" action="{{ route('accounts.store')}}" enctype="multipart/form-data" id="commentForm">
@csrf
<!-- Codes -->
</form>
</div>
</div>
</div>
</div>
</div>
```
```Route::get('/', function () {
return view('home');
});
Route::resource("accounts", "AccountController");
Route::get('/accounts', 'AccountController@create');
Route::post('/accounts', 'AccountController@create');
```
答案 0 :(得分:1)
在routes / web.php中仅定义一次路由。
删除以下几行:
Route::get('/accounts', 'AccountController@create');
Route::post('/accounts', 'AccountController@create');
如果将控制器方法与laravel docs匹配,则资源路由定义将在accounts.store
路由中提供。
确保您的AccountController
还包含一个名为store
的函数
答案 1 :(得分:0)
重写此路线
Route::get('/accounts', 'AccountController@create')->name('accounts.create');
Route::post('/accounts', 'AccountController@store')->name('accounts.store');
不发布
答案 2 :(得分:0)
这是因为如果您需要在资源下运行路由,那么您将覆盖路由,因此您需要给它们指定相同的路由名称
Route::post('/accounts', 'AccountController@create')->name('accounts.store');
或者,如果您想使用资源路线,则需要将其放在路线下方,以免覆盖其名称和网址