NotEmpty - Не пустое значение

С версии: 9.3.0
78

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

По умолчанию этот валидатор работает иначе, чем вы ожидаете, работая с PHP функцией empty(). В частности, этот валидатор будет оценивать как целое число 0, так и строку «0» как пустые.

Вам может не подойти это поведение и, например, в вашем случае 0 не должен считаться пустым. Для таких случаев в валидаторе NotEmpty вы можете задать некоторые настройки.

Поддерживаемые параметры

  • type: Устанавливает тип проверки, которая будет выполнена.

Обрабатываемые типы

  • boolean: Возвращает false, когда логическое значение равно false.
  • integer: Возвращает false, когда задано целое число 0. По умолчанию эта проверка не активирована и возвращает true для любых целочисленных значений.
  • float: Возвращает false, когда задано значение с плавающей запятой 0.0. По умолчанию эта проверка не активирована и возвращает true для любых значений с плавающей запятой.
  • string: Возвращает false, когда задана пустая строка.
  • zero: Возвращает false, когда задан один символ ноль ('0').
  • empty_array: Возвращает false, когда задан пустой массив.
  • null: Возвращает false, когда задано значение null.
  • php: Возвращает false везде, где PHP empty () возвращает true.
  • space: Возвращает false, если задана строка, содержащая только пробел.
  • object: Возвращает true. false будет возвращено, когда объект не разрешен, но объект задан.
  • object_string: Возвращает false, когда объект задан, а его метод __toString () возвращает пустую строку.
  • object_count: Возвращает false, когда объект задан, он реализует Countable, и его количество равно 0.
  • all: Возвращает false для всех вышеперечисленных типов.

Рассмотрим пример как передавать эти параметры в валидатор.

Примеры использования

// Массив полей и значений
$data = [
    'test' => 0,
];

// Настройки валидатора
$rules = [
    'test' => [
        'NotEmpty' => [
            'type' => [
                'integer',
                'zero',
            ],
        ],
    ],
];

// Валидация
$validator = new \Johncms\Validator\Validator($data, $rules);
if ($validator->isValid()) {
    echo 'OK';
} else {
    d($validator->getErrors());
}

Как видите, для валидатора NotEmpty задан массив настроек, в нем передается параметр type со значениями из списка выше (обрабатываемые типы).