CakePHP 3.0 中忽略的自定义验证消息

Custom validation message ignored in 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"

我只需要转换为布尔值 return 值,如 preg_match() returns 0|1.

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