Я пытаюсь запретить пользователям использовать определенные имена, такие как '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']),
]);
}
Приведенный выше код дал мне эту ошибку:
Аргумент 1, переданный в Illuminate \ Auth \ SessionGuard :: login (), должен быть экземпляром Illuminate \ Contracts \ Auth \ Authenticatable, заданной строкой, вызываемой в / var / www/vendor/laravel/ui/auth-backend/RegistersUsers.php в строке 36
Я также искал, могут ли валидаторы блокировать определенные c слова, но это не удалось. Я знаю, что могу обойти это, используя JS, но я думаю, что Laravel будет иметь такую функцию.