Как сделать пользовательскую проверку с использованием входного значения в качестве имени уже было принято? - PullRequest
0 голосов
/ 12 апреля 2020

В контроллере

public function store(Request $req)
{
    $req->validate([
    'username' => 'required|unique:users',
    ]);

    $users = new Users();
    $users->username = $req->username;
    $users->save();        
    return redirect()->route('list.users');
}

Проверка имени пользователя возвращается как The username has already been taken.

Я набираю поле имени пользователя как JHON, и я хотел бы вернуть проверку как: The JHON has already been taken.?

Ответы [ 3 ]

1 голос
/ 12 апреля 2020

Я полагаю, что вы можете использовать :input при определении пользовательских сообщений проверки.

public function store(Request $req)
{
    Validator::make($req, [
        'username' => 'required|unique:users',
    ], [
        'unique' => 'The :input username has already been taken.',
    ]);

    $users = new Users();
    $users->username = $req->username;
    $users->save();        
    return redirect()->route('list.users');
}
1 голос
/ 12 апреля 2020

Чтобы сделать ваш код чище, вы должны изменить локализацию "уникальной" ошибки проверки

Go на файл "resources / lang / en / validation. php" (или изменить "en" расстаться с iso-кодом вашего языка) и измените "уникальное" значение.

From:

'unique' => 'The :attribute has already been taken.',

To:

'unique' => 'The :attribute :input has already been taken.',

Таким образом, вы должно получить следующее сообщение

Имя пользователя JHON уже занято.

0 голосов
/ 12 апреля 2020
$req->validate([
    'username' => 'required|unique:users,username',
    ]);

Это синтаксис использования уникальных:

unique:table,column

https://laravel.com/docs/7.x/validation#rule -уникальный

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...