首页 > 解决方案 > 此路由不支持 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

标签: phplaravellaravel-8

解决方案


辅助功能route基于路由名称工作,但您忘记添加您的路由名称,将您的路由更改为以下内容:

Route::post('/cadastro', [App\Http\Controllers\AdmController::class, 'store'])->name('cadastro');

更新

正如Aynber 所提到的,在正常情况下,如果您没有该路由名称,则会引发Route [route-name] not defined错误。由于它没有显示该错误,因此您可能已经有一个具有该名称的路由,运行php artisan route:list并查看哪个路由被命名,并根据您的逻辑修复命名。


推荐阅读