Laravel 5.6 Проверочное выражение для пустой строки - PullRequest
0 голосов
/ 06 сентября 2018

Я хочу проверить телефонную строку с помощью Validator. Код выше.

$rules = [
    'phone' => 'regex:/^09\d{8}$/'
];
$messages = [
    'phone.regex' => 'INVALID_PHONE',
];

Тест 1:

$data = [
    'phone' => 'test'
];
$vali = Validator::make($data, $rules, $messages);

dd($vali->errors()->first()); // I got "INVALID_PHONE". That's I exactly expected.

Тест 2:

$data = [
    'phone' => ''
];
$vali = Validator::make($data, $rules, $messages);

dd($vali->errors()->first()); // I got "". I expected it is "INVALID_PHONE"

Чего мне не хватает?

Я хочу использовать только регулярное выражение.

1 Ответ

0 голосов
/ 06 сентября 2018

Это потому, что это тоже нужно;

$rules = [
    'phone' => 'required|regex:/^09\d{8}$/'
];

Когда вы передаете пустую строку, проверка проходит, потому что поле телефона не является обязательным, и потому что оно пустое, оно не проверяет регулярное выражение. Как только это поле не будет пустым, оно проверит шаблон регулярного выражения

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