我在laravel添加了用户名字段并注册了一个用户,这很好,但是当我尝试用用户名登录时,用用户名代替电子邮件,而不是出现这个错误:
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>模型:
protected $fillable = [
'name',
'username',
'email',
'password',
];RegisteredUserController:
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),
]);loginrequest.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());
}有谁能建议我为什么会犯这个错误,或者怎么纠正它。
发布于 2022-08-06 07:23:00
在Validator中添加RegisteredUserController类,如下所示:
use Validator;在存储函数中更改用户名验证:
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。
https://stackoverflow.com/questions/73257469
复制相似问题