CakePHP 3,验证器:域转换和占位符
CakePHP 3, validator: domain translation and placeholders
假设我有这个:
$validator->add('title', [
'lengthBetween' => [
'message' => 'Must be between %d and %d chars',
'rule' => ['lengthBetween', 3, 100]
]
])
我想知道:
- 如何指示域转换(使用 CakePHP 2.x,您可以使用
$validationDomain
模型 属性);
- 如何使用占位符来验证消息(似乎不适用于
%s/%d
或 {0}
)。
谢谢。
占位符已在 3.x 中删除。这背后的原因是现在更容易翻译消息以进行验证,因为它们现在存在于方法中而不是 class 属性.
所以实际的做法是:
$validator->add('title', [
'lengthBetween' => [
'message' => __('Must be between {0} and {1} chars', 3, 100),
'rule' => ['lengthBetween', 3, 100]
]
])
假设我有这个:
$validator->add('title', [
'lengthBetween' => [
'message' => 'Must be between %d and %d chars',
'rule' => ['lengthBetween', 3, 100]
]
])
我想知道:
- 如何指示域转换(使用 CakePHP 2.x,您可以使用
$validationDomain
模型 属性); - 如何使用占位符来验证消息(似乎不适用于
%s/%d
或{0}
)。
谢谢。
占位符已在 3.x 中删除。这背后的原因是现在更容易翻译消息以进行验证,因为它们现在存在于方法中而不是 class 属性.
所以实际的做法是:
$validator->add('title', [
'lengthBetween' => [
'message' => __('Must be between {0} and {1} chars', 3, 100),
'rule' => ['lengthBetween', 3, 100]
]
])