簡體   English   中英

Laravel-9:方法 Illuminate\Validation\Validator::validateUsername 不存在

[英]Laravel-9: Method Illuminate\Validation\Validator::validateUsername does not exist

我在 laravel 微風身份驗證中添加了用戶名字段並注冊了一個用戶,這很好,但是當我嘗試通過用用戶名替換 email 來使用用戶名登錄時,它給出了這個錯誤:

  Method Illuminate\Validation\Validator::validateUsername does not exist

表格代碼:

   <div class="mt-4">
            <x-label for="username" :value="__('Username')" />

            <x-input id="username" class="block mt-1 w-full" type="username" name="username" :value="old('username')" required autofocus />
        </div>

model:

   protected $fillable = [
    'name',
    'username',
    'email',
    'password',
];

注冊用戶控制器:

   public function store(Request $request)
{
    $request->validate([
        'name' => ['required', 'string', 'max:255'],
        'username' => ['required', 'string', 'max:255', 'unique:users'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
        'password' => ['required', 'confirmed', Rules\Password::defaults()],
    ]);

    $user = User::create([
        'name' => $request->name,
        'username' => $request->username,
        'email' => $request->email,
        'password' => Hash::make($request->password),
    ]);

登錄請求.php

  public function authenticate()
{
    $this->ensureIsNotRateLimited();

    if (! Auth::attempt($this->only('username', 'password'), $this->boolean('remember'))) {
        RateLimiter::hit($this->throttleKey());

        throw ValidationException::withMessages([
            'username' => trans('auth.failed'),
        ]);
    }

    RateLimiter::clear($this->throttleKey());
}

誰能建議我為什么給出這個錯誤,或者如何解決它。

如果您已經在RegisteredUserController中添加了Validator外觀 class

use Validator;

如果您更改商店 function 中的用戶名驗證

像下面可以幫助你

  public function store(Request $request)
{
    $request->validate([
        'name' => ['required', 'string', 'max:255'],
        'username' => ['required', 'string', 'max:255', 'unique:users,username'],
        'email' => ['required', 'string', 'email', 'max:255', 'unique:users,email'],
        'password' => ['required', 'confirmed', Rules\Password::defaults()]
    ]);

    $user = User::create([
        'name' => $request->name,
        'username' => $request->username,
        'email' => $request->email,
        'password' => Hash::make($request->password)
    ]);

我剛剛在其驗證行的末尾添加了username

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM