php - 此路由不支持 GET 方法。支持的方法:POST。- 用户注册错误
问题描述
我正在尝试进行用户注册,但是当我将信息发送到数据库时,会出现此错误“此路由不支持 GET 方法。支持的方法:POST。” 我能做些什么来解决这个问题?我是否必须更改 web.php 上的路线?
控制器——AdmController.php
public function create()
{
return view('cadastros.cad_user');
}
public function store(Request $request)
{
if(isset($request['adm']))
{
$checkbox = 1;
}
else
{
$checkbox = 0;
}
User::create([
'name' => $request['name'],
'email' => $request['email'],
'password' => Hash::make('29recogna03'),
'adm' => $checkbox,
'ativo' => 1,
'maquina' => '',
]);
return view('cadastros/cad_user');
}
路线——web.php
Route::post('/cadastro', [App\Http\Controllers\AdmController::class, 'store']);
Route::get('/cad_user', [App\Http\Controllers\AdmController::class, 'create']);
查看——cad_user.blade.php
@extends('layouts.app')
@section('title', 'Cadastro de usuários')
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="cardRegister">
<div class="card-body">
<form method="POST" action="{{ route('cadastro') }}">
@csrf
<div class="title">
<h3><b>CADASTRAR USUÁRIO</b></h3>
<hr>
</div>
<div class="form-group row">
<div class="col-md-6">
<input id="name" placeholder="Nome do usuário" type="text" class="form-control @error('name') is-invalid @enderror" name="name" required autocomplete="name" autofocus>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<div class="col-md-6">
<input id="email" placeholder="Email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" required autocomplete="email">
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group dec">
<div class="ger"><p>Usuário</p></div>
<div class="switch__container">
<input id="switch-flat" class="switch switch--flat" type="checkbox" name="adm" value="1">
<label for="switch-flat"></label>
</div>
<div class="func"><p>Administrador</p></div>
</div>
<div class="form-group row">
<div class="col-md-6">
<input id="password" type="password" class="form-control @error('password') is-invalid @enderror" value="29recogna03" disabled>
@error('password')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<button type="submit" class="btn btn-primary">
{{ __('CADASTRAR') }}
</button>
</form>
</div>
</div>
</div>
</div>
</div>
@endsection
解决方案
辅助功能route
基于路由名称工作,但您忘记添加您的路由名称,将您的路由更改为以下内容:
Route::post('/cadastro', [App\Http\Controllers\AdmController::class, 'store'])->name('cadastro');
更新
正如Aynber 所提到的,在正常情况下,如果您没有该路由名称,则会引发Route [route-name] not defined
错误。由于它没有显示该错误,因此您可能已经有一个具有该名称的路由,运行php artisan route:list
并查看哪个路由被命名,并根据您的逻辑修复命名。
推荐阅读
- java - 使用 java 运行 sh 脚本,但它失败且不显示错误
- python-3.x - 如何使用 Selenium WebDriver 单击“复制”?
- jquery - Bootstrap 4 验证不会停止发送无效表单
- set - Netezza 设置目录期望 'To' 或 '=' 虽然不应该
- pytest - 如何禁用 pytest 固定装置?
- azure-virtual-machine - 用于检查 VM 大小的 Azure 策略设置为 VM 资源上标记“ProductionSize”的值
- python - Python 循环控制练习
- javascript - 新的 Vue 组合 API 无法识别函数
- php - 如何只插入一次行并使其永远可更新
- reporting-services - SSRS - 从不同的行获取值