Respect Validation php 苗条的自定义消息
Respect Validation php slim custom messages
我已经阅读了文档,我想知道是否可以根据规则和属性制作自定义消息,例如我有以下代码
$casoValidator = Validator::attribute('nombre',Validator::allOf(Validator::stringType(),Validator::notOptional(),
Validator::stringType()->length(3,100))) //nombre, validamos que sea cadena, que es obligatorio y que tiene de 3 a 100 caracteres
->attribute('idUsuario',Validator::allOf(Validator::intType()))
->attribute('numeroSertel',Validator::allOf(Validator::stringType(), Validator::stringType()->length(1,100)))
->attribute('dni',Validator::allOf(Validator::stringType(), Validator::stringType()->length(8,20))); //la capturaremos al hacer insert si hay problemas con las FK
try {
$asuntoValidator->assert($asunto);
} catch(NestedValidationException $exception) {
$errors = $exception->findMessages([
'length' => '{{name}} no puede tener mas de 100 caracteres ni menos de uno',
'notOptional' => '{{name}} no es opcional',
....
如您所见,'nombre' 和 'dni' 的长度不同,所以我应该 return 两条不同的消息,其中一条是
你不能少于 3 个字符,也不能超过 100 个字符
对于 dni,我应该 return dni 不能少于 8 个字符,也不能超过 20 个字符
有办法吗?
为自定义模板所需的每个规则添加单独的 setTemplate
方法调用。例如:
$rule = v::key('color', v::alnum()->setTemplate('{{name}} must be alphanumeric value, for ex. f7f1d5'))
->key('color', v::length(6,6)->setTemplate('{{name}} must be a 6-character value'));
$params['color'] = '¯\_(ツ)_/¯';
try{
$rule->assert($params);
} catch (NestedValidationException $e) {
$errors = $e->getMessages();
}
var_dump($errors);
结果:
array (size=2)
0 => string 'color must be alphanumeric value, for ex. f7f1d5' (length=48)
1 => string 'color must be a 6-character value' (length=33)
我已经阅读了文档,我想知道是否可以根据规则和属性制作自定义消息,例如我有以下代码
$casoValidator = Validator::attribute('nombre',Validator::allOf(Validator::stringType(),Validator::notOptional(),
Validator::stringType()->length(3,100))) //nombre, validamos que sea cadena, que es obligatorio y que tiene de 3 a 100 caracteres
->attribute('idUsuario',Validator::allOf(Validator::intType()))
->attribute('numeroSertel',Validator::allOf(Validator::stringType(), Validator::stringType()->length(1,100)))
->attribute('dni',Validator::allOf(Validator::stringType(), Validator::stringType()->length(8,20))); //la capturaremos al hacer insert si hay problemas con las FK
try {
$asuntoValidator->assert($asunto);
} catch(NestedValidationException $exception) {
$errors = $exception->findMessages([
'length' => '{{name}} no puede tener mas de 100 caracteres ni menos de uno',
'notOptional' => '{{name}} no es opcional',
....
如您所见,'nombre' 和 'dni' 的长度不同,所以我应该 return 两条不同的消息,其中一条是 你不能少于 3 个字符,也不能超过 100 个字符 对于 dni,我应该 return dni 不能少于 8 个字符,也不能超过 20 个字符
有办法吗?
为自定义模板所需的每个规则添加单独的 setTemplate
方法调用。例如:
$rule = v::key('color', v::alnum()->setTemplate('{{name}} must be alphanumeric value, for ex. f7f1d5'))
->key('color', v::length(6,6)->setTemplate('{{name}} must be a 6-character value'));
$params['color'] = '¯\_(ツ)_/¯';
try{
$rule->assert($params);
} catch (NestedValidationException $e) {
$errors = $e->getMessages();
}
var_dump($errors);
结果:
array (size=2)
0 => string 'color must be alphanumeric value, for ex. f7f1d5' (length=48)
1 => string 'color must be a 6-character value' (length=33)