此路由不支持 GET 方法。支持的方法:POST。在插入/存储
Posted
技术标签:
【中文标题】此路由不支持 GET 方法。支持的方法:POST。在插入/存储【英文标题】:The GET method is not supported for this route. Supported methods: POST. on insert / store 【发布时间】: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 请求访问。
【参考方案1】:
找到了解决办法。不知道它是否正确xD,但它有效..
我做其他控制器:
public function create()
$categories = Category::all();
return view('category.insert_category')->with('categories', $categories);
并添加这条路线:
Route::get('admin/insert', 'CategoryController@create');
【讨论】:
以上是关于此路由不支持 GET 方法。支持的方法:POST。在插入/存储的主要内容,如果未能解决你的问题,请参考以下文章
错误:此路由不支持 POST 方法。支持的方法:GET、HEAD。 - 使用 laravel livewire
此路由不支持 GET 方法。支持的方法:POST。拉拉维尔 8
此路由不支持 POST 方法。支持的方法:GET、HEAD。",...
此路由不支持 PUT 方法。支持的方法:GET、HEAD、POST。在 laravel 中