【发布时间】:2020-04-06 04:11:05
【问题描述】:
我的插入(存储)页面不断出现此错误。它说
此路由不支持 GET 方法。支持的方法:POST。
当我转到/category/admin/insert时会发生这种情况
我已经尝试命名我的路线,但没有解决任何问题。
这是我的路线:
Route::prefix('category')->group(function () {
Route::post('admin/manage', 'CategoryController@destroy');
Route::get('admin/manage', 'CategoryController@index');
Route::post('admin/insert', 'CategoryController@store');
Route::get('admin/edit/{id}', 'CategoryController@edit');
Route::post('admin/update', 'CategoryController@update');
});
这是我的看法 (.blade.php)
<div class="card-body">
<form action="{{ url('category/admin/insert') }}" method="POST" enctype="multipart/form-data">
{{csrf_field()}}
<div class="form-group">
<input type="text" name="category_name" class="form-control" value="" placeholder="Category Name">
</div>
<button class="form-control btn btn-primary">Insert</button>
@if($errors->any())
<div class="alert alert-danger mt-3">
<ul>
@foreach($errors->all() as $e)
<li>{{$e}}</li>
@endforeach
</ul>
</div>
@endif
@if(Session::get('success'))
<div class="alert alert-success mt-3">
<strong>{{Session::get('success')}}</strong>
</div>
@endif
</form>
</div>
这是我的Controller:
public function store(Request $request)
{
$request->validate([
'category_name' => 'required|min:5'
]);
$categories = new Category();
$categories->name = $request->get('category_name');
$categories->save();
return redirect('/category/admin/manage')->with('success', 'Success Insert');
}
【问题讨论】:
-
您是否设置了任何重定向,例如 HTTP -> HTTPS?重定向仅使用 GET,因此任何 POST 请求都将更改为 GET。
-
如果您在提交之前在
category_name输入中输入12345(或至少包含5 个字符的内容),您是否会遇到此问题?您的验证可能失败,我很确定这会导致重定向。编辑:“当我去/category/admin/insert时会发生这种情况” - 不要走那条路;您没有为它定义GET路由。 -
在控制器函数中验证请求之前尝试
dd($request) -
我只是去 127.0.0.1:8000/category/admin/insert 并且它总是会发生
-
将
127.0.0.1:8000/category/admin/insert放入浏览器使用GET 请求。这行不通。它只能通过 POST 请求访问。