Laravel Validator не работает - это может быть ошибка в Laravel 6 Validator - PullRequest
0 голосов
/ 22 января 2020

Я думаю, что есть ошибка в Laravel 6 валидаторе

Пожалуйста, помогите мне разобраться в этом: я sh для проверки определенного unid, см. Мои правила ниже

Test1

    $validator = validator(['unid' => '4444'], [
            'unid' => 'required|digits:16|unique:users,unid',
     ]);

    //This works, says `unid must be 16 digits

Test2 - передан в массиве

    $validator = validator(['unid' => [2232323232]], [
            'unid' => 'required|digits:16|unique:users,unid',
     ]);

    //I expected the validator `digits:16` to fail here since an array was passed but it throws an error
    //local.ERROR: preg_match() expects parameter 2 to
    //be string, array given {"exception":"[object] (ErrorException(code: 0): 
    //preg_match() expects parameter 2 to be string, array given at ...

Вот сценарий, который поможет вам понять. Предполагая, что это API, а злоумышленник публикует массив вместо строки или чисел $ request-> unid === [2232323232, 22222], ваше приложение выдает ошибку 500.

Пожалуйста, помогите мне разобраться в этой проблеме

1 Ответ

0 голосов
/ 22 января 2020

добавить код после $ validator

if ($validator->fails())
{
   return redirect()->back()->withErrors($validator)->withInput();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...