В Laravel, какие правила проверки мне нужны, чтобы проверить количество символов в числе?

Я использую правила проверки в Laravel и пытаюсь проверить количество символов в числе.

Это моя попытка:

protected static $rules = [
'zip_code' => 'required|size:5|integer'
];

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

6

Решение

Почтовый индекс длиной 5 цифр может содержать начальные нули (северо-восток США). Проверка «цифр» Laravel удаляет начальные нули, в результате чего вам нужно использовать шаблон регулярных выражений:

protected static $rules = [
'zip_code' => 'required|regex:/\b\d{5}\b/'
];

Это гарантирует, что почтовый индекс всегда будет состоять из 5 цифр. Более подробная информация в Laravel Docs

12

Другие решения

Согласно Laravel 5.3:

Если вы проверяете против поле персонажа который содержит число, и вы хотите знать, если это максимум 5 или менее цифр тогда вы можете использовать:

protected static $rules = [
'zip_code' => 'required|max:5|string'
];

Если вы проверяете против целочисленное поле и вы хотите знать, если он содержит максимум 5 или менее цифр затем используйте:

protected static $rules = [
'zip_code' => 'required|max:99999|integer'
];

Если вы проверяете против целочисленное поле и вы хотите знать, если он содержит точные 5 цифр тогда вы можете использовать:

protected static $rules = [
'zip_code' => 'required|digits:5|integer'
];

Хотя в последнем случае почтовые индексы с ведущими нулями будут обрезаны, и поэтому для почтовых индексов я рекомендую использовать preg_match для проверки. Определите пользовательское правило проверки в вашем AppServiceProvider файл под ботинок функция. Для справки смотрите это:

https://laravel.com/docs/5.3/validation#custom-validation-rules

и вы должны использовать varchar (10) (строка, 10 в laravel) вместо целого числа для почтовых индексов, потому что:

  1. Вы не можете определить размер целого числа в MySQL, но вы можете для varchar.

  2. Почтовые индексы могут быть длиной 10 символов с расширением (zip + 4, например: 12345-1234).

Я надеюсь, что это помогает

1

Вы получаете это неправильно вместо размера: 5 попробуйте мин: 5 | макс: 5

0
По вопросам рекламы [email protected]