Пользовательское сообщение проверки игнорируется в CakePHP 3.0

Я пытаюсь создать пользовательское правило проверки следующим образом:

$validator
    ->add('slug', 'custom', [
        'rule' => function($value, $context) {
            return preg_match('/^[a-z0-9\-]+$/', $value);
        },
        'message' => 'Slug cannot contain spaces or special characters'
    ]);

Правило работает нормально, но сообщение в форме всегда: "The provided value is invalid".


person paulodiovani    schedule 09.03.2015    source источник


Ответы (1)


Мне просто нужно было привести логическое значение возвращаемого значения, поскольку preg_match() возвращает 0|1.

return (bool) preg_match('/^[a-z0-9\-]+$/', $value);
person paulodiovani    schedule 09.03.2015