PHP Laravel 目标类 [Auth\RegisterController] 不存在

问题描述 投票:0回答:2

我遇到了这个错误,不知道哪里出了问题,请帮助我

我的控制器:

<?php

namespace App\Http\Controllers\Auth;

use App\Http\Controllers\Controller;
use App\Providers\RouteServiceProvider;
use App\Models\Account_Register; // Chắc chắn rằng bạn đã import model User
use Illuminate\Support\Facades\Hash;
use Illuminate\Http\Request;

class RegisterController extends Controller
{
    protected $redirectTo = RouteServiceProvider::HOME;

    public function __construct()
    {
        $this->middleware('guest');
    }

    public function showRegistrationForm()
    {
        return view('auth.register');
    }

    public function register(Request $request)
    {
        // Kiểm tra và xác thực dữ liệu đầu vào
        $request->validate([
            'firstname' => 'required|string|max:255',
            'lastname' => 'required|string|max:255',
            'email' => 'required|string|email|max:255|unique:accounts',
            'password' => 'required|string|min:8|confirmed',
        ]);

        // Tạo một bản ghi User mới
        Account_Register::create([
            'firstname' => $request->firstname,
            'lastname' => $request->lastname,
            'email' => $request->email,
            'password' => Hash::make($request->password),
            'role' => 2, // Gán vai trò mặc định (Member)
            'status' => 1, // Trạng thái mặc định (Show)
            'user_id' => 1, // ID của người dùng (nếu có)
            'package_id' => 1, // ID của gói (nếu có)
        ]);

        // Chuyển hướng sau khi đăng ký thành công
        return redirect(RouteServiceProvider::HOME);
    }
}

我的视图register.blade.php:

@extends('layouts.app')
@section('title', 'Sign Up')
<style>
.navbar ul {
    visibility: hidden;
}
</style>
@section('content')

<div class="signup">
    <div class="signup-container">
        <img src="../../img/study.jpg" alt="Child-friendly image" style="max-width: auto; height: auto" />
        <br>
        <h1>Join <a href="/">KIDS ZONE</a> for free!</h1>
        <form method="POST" action="{{ route('register') }}">
                @csrf
                <div class="form-group">
                    <input name="firstname" type="text" class="form-control" id="firstname" required />
                    <label for="firstname">First Name *</label>
                 </div>
            <br>
            <div class="form-group">
                <input name="lastname" type="text" class="form-control" id="lastname" required />
                <label for="lastname">Last Name *</label>
            </div>
            <br>
            <div class="form-group">
                <input name="email" type="email" class="form-control" id="email" required />
                <label for="email">Email *</label>
            </div>
            <br>
            <div class="form-group">
                <input name="password" type="password" class="form-control" id="password" required />
                <label for="password">Password *</label>
            </div>
            <br>
            <div class="form-group">
                <input name="password" type="password" class="form-control" id="passwordRepeat" required />
                <label for="password">Re-type Password *</label>
            </div>
            <br>
            <button type="submit" class="btn-signup">
               Sign Up
               </button>
            </form>
        <p class="forgot-password">Already have an account? <a href="{{asset('auth/login')}}">Sign in</a></p>
    </div>
</div>
@endsection
<script>
document.addEventListener("DOMContentLoaded", function() {
    const signupContainer = document.querySelector(".signup-container");
    signupContainer.classList.add("animated");
});
</script>
//My model: Account_Register

My route:
Route::post('/auth.register', 'Auth\RegisterController@register')->name('register');

    <?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Account_Register extends Model
{
    protected $table = 'accounts';

    protected $fillable = [
        'firstname', 'lastname', 'email', 'password', 'role', 'status', 'user_id', 'package_id'
    ];
    use HasFactory;
}

//my route
My model: Account_Register

My route:
Route::post('/auth.register', 'Auth\RegisterController@register')->name('register');

    <?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Account_Register extends Model
{
    protected $table = 'accounts';

    protected $fillable = [
        'firstname', 'lastname', 'email', 'password', 'role', 'status', 'user_id', 'package_id'
    ];
    use HasFactory;
}




[在此处输入图像描述][1]

我检查了路径,但一切似乎都是正确的。请帮助我,非常感谢![在此处输入图像描述][2] 我检查了路径,但一切似乎都是正确的。请帮助我,非常感谢!

php laravel view model controller
2个回答
0
投票

错误是因为你的路线定义。

从 Laravel 8 开始,使用字符串语法定义路由时,必须在控制器上添加前缀,如下所示:

Route::post('/auth.register', 'App\Http\Controllers\Auth\RegisterController@register')
    ->name('register');

您还可以像这样定义您的路线:

use App\Http\Controllers\Auth\RegisterController;

Route::post('/auth.register', [RegisterController::class, 'register'])
    ->name('register');


0
投票
Route::post('/auth.register', [App\Http\Controllers\Auth\RegisterController::class, 'register'])->name('register');
© www.soinside.com 2019 - 2024. All rights reserved.