第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在默認的 laravel 注冊表單中拒絕使用特定用戶名的用戶注冊?

如何在默認的 laravel 注冊表單中拒絕使用特定用戶名的用戶注冊?

PHP
夢里花落0921 2023-04-21 16:52:56
我試圖阻止用戶使用某些名稱,例如“admin”或“operator”。我嘗試擺弄Controllers/Auth/RegisterController和Controller/RegisterController但失敗了。我試過的是這樣的:in Controllers/Auth/RegisterController,if ($data['name'] === 'admin' || $data['name'] === 'operator') {             return redirect()->back()->withErrors(['Invalid username']);        } else {    session()->flash('message', 'Welcome!');    return User::create([    'name' => $data['name'],    'email' => $data['email'],    'password' => Hash::make($data['password']),            ]);        }上面的代碼給了我這個錯誤:傳遞給 Illuminate\Auth\SessionGuard::login() 的參數(shù) 1 必須是 Illuminate\Contracts\Auth\Authenticatable 的實例,給定的字符串,在 /var/www/vendor/laravel/ui/auth-backend/RegistersUsers.php 中調(diào)用在第 36 行我還搜索了驗證器是否可以阻止特定單詞但失敗了。我知道我可以通過使用 JS 來解決這個問題,但我認為 Laravel 會有這樣的功能。
查看完整描述

4 回答

?
交互式愛情

TA貢獻1712條經(jīng)驗 獲得超3個贊

  1. 轉(zhuǎn)到 RegisterController.php。

    1. 將有一個 validator(array $data) 函數(shù)來驗證您的注冊輸入。

    2. 為名稱字段添加 not_in 驗證檢查。

是這樣的:

   protected function validator(array $data)

    {

        return Validator::make($data, [

            'name' => ['required', 'string', 'max:255', 'not_in:admin,operator'],

            'pan' => ['required', 'string', 'min:10', 'max:10', 'unique:users,username'],

            'password' => ['required', 'string', 'min:8', 'confirmed'],

        ]);

    }

希望這會有所幫助。


查看完整回答
反對 回復 2023-04-21
?
qq_花開花謝_0

TA貢獻1835條經(jīng)驗 獲得超7個贊

這是我在 Laravel 9 中使用 Breeze 腳手架所做的。

我用保留的用戶名創(chuàng)建了一個單獨的“服務”特性,這樣我就可以輕松地實現(xiàn)和擴展它。

  1. 創(chuàng)建一個Services文件夾在app/Services

  2. Reserved在以下位置創(chuàng)建特征app/Services/Reserved.php

保留.php

<?php


namespace App\Services;


trait Reserved

{

    public static function usernames()

    {

        return ['admin', 'operator', 'someBadWord'];

    }

}

接下來打開app/Http/Controllers/Auth/RegisteredUserController.php并導入特征,然后添加它。


現(xiàn)在只需使用規(guī)則將其添加到您的驗證規(guī)則中notIn。


Rule::notIn(Reserved::usernames())

注冊用戶控制器.php

use Illuminate\Validation\Rule;

use App\Services\Reserved;


class RegisteredUserController extends Controller

{

    use Reserved;

    ...


    public function store(Request $request)

    {

        $request->validate([

            'username' => ['required', 'string', 'max:16', 'unique:users', Rule::notIn(Reserved::usernames())],

            'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],

            'password' => ['required', 'confirmed', Rules\Password::defaults()],

        ]);


        ...

    }

}


查看完整回答
反對 回復 2023-04-21
?
侃侃無極

TA貢獻2051條經(jīng)驗 獲得超10個贊

您可以嘗試驗證請求的名稱是否不在預定義的阻止名稱列表中:


use Illuminate\Validation\Rule;


Validator::make($data, [

    'toppings' => [

        'required',

        Rule::notIn(['admin', 'superuser']),//etc..

    ],

]);


查看完整回答
反對 回復 2023-04-21
?
大話西游666

TA貢獻1817條經(jīng)驗 獲得超14個贊

使用以下命令創(chuàng)建 RegisterControllerRequest:


php artisan make:request RegisterControllerRequest

在 中找到您最近創(chuàng)建的文件app/Http/Requests,然后更新rules()為:


public function rules()

{

? ? return [

? ? ? ? 'name' => 'required|notIn:admin,operator',

? ? ];

}

然后更新您的控制器以使用新的驗證:


在命名空間后添加:


use? App\Http\Requests\RegisterControllerRequest;

最后將驗證作為參數(shù)注入到您的注冊方法中:


public function register (RegisterControllerRequest $request)

查看完整回答
反對 回復 2023-04-21
  • 4 回答
  • 0 關注
  • 190 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網(wǎng)微信公眾號