4 回答

TA貢獻(xiàn)1712條經(jīng)驗(yàn) 獲得超3個(gè)贊
轉(zhuǎn)到 RegisterController.php。
將有一個(gè) validator(array $data) 函數(shù)來(lái)驗(yàn)證您的注冊(cè)輸入。
為名稱(chēng)字段添加 not_in 驗(yàn)證檢查。
是這樣的:
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'],
]);
}
希望這會(huì)有所幫助。

TA貢獻(xiàn)1835條經(jīng)驗(yàn) 獲得超7個(gè)贊
這是我在 Laravel 9 中使用 Breeze 腳手架所做的。
我用保留的用戶名創(chuàng)建了一個(gè)單獨(dú)的“服務(wù)”特性,這樣我就可以輕松地實(shí)現(xiàn)和擴(kuò)展它。
創(chuàng)建一個(gè)
Services
文件夾在app/Services
Reserved
在以下位置創(chuàng)建特征app/Services/Reserved.php
保留.php
<?php
namespace App\Services;
trait Reserved
{
public static function usernames()
{
return ['admin', 'operator', 'someBadWord'];
}
}
接下來(lái)打開(kāi)app/Http/Controllers/Auth/RegisteredUserController.php并導(dǎo)入特征,然后添加它。
現(xiàn)在只需使用規(guī)則將其添加到您的驗(yàn)證規(guī)則中notIn。
Rule::notIn(Reserved::usernames())
注冊(cè)用戶控制器.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()],
]);
...
}
}

TA貢獻(xiàn)2051條經(jīng)驗(yàn) 獲得超10個(gè)贊
您可以嘗試驗(yàn)證請(qǐng)求的名稱(chēng)是否不在預(yù)定義的阻止名稱(chēng)列表中:
use Illuminate\Validation\Rule;
Validator::make($data, [
'toppings' => [
'required',
Rule::notIn(['admin', 'superuser']),//etc..
],
]);

TA貢獻(xiàn)1817條經(jīng)驗(yàn) 獲得超14個(gè)贊
使用以下命令創(chuàng)建 RegisterControllerRequest:
php artisan make:request RegisterControllerRequest
在 中找到您最近創(chuàng)建的文件app/Http/Requests,然后更新rules()為:
public function rules()
{
? ? return [
? ? ? ? 'name' => 'required|notIn:admin,operator',
? ? ];
}
然后更新您的控制器以使用新的驗(yàn)證:
在命名空間后添加:
use? App\Http\Requests\RegisterControllerRequest;
最后將驗(yàn)證作為參數(shù)注入到您的注冊(cè)方法中:
public function register (RegisterControllerRequest $request)
- 4 回答
- 0 關(guān)注
- 204 瀏覽
添加回答
舉報(bào)