是否可以向CakePHP模型中的验证消息添加域字符串?我用__d()本地化了我所有的消息
echo __d('my_app_name', 'This is a regular message');但模型中的验证消息是普通字符串或sprintf参数:
'my_field' => array(
  'my_rule' => array(
    'rule' => 'alphanumeric',
    'message' => 'Only letters and numbers allowed',
  )
)
'another_field' => array(
  'another_rule' => array(
    'rule' => 'alphanumeric',
    'message' => ('Only %s and %s allowed', 'letters', 'numbers'),
  )
)谢谢!
发布于 2012-03-20 17:31:58
假设您使用的是CakePHP 2.x:
Cake的Model类有一个属性validationDomain,您只需添加
public $validationDomain = "yourdomain";
到你的模型去得到你想要的东西。
来自API的信息:
ValidationDomain (字符串)
转换验证错误时要使用的验证字符串域的名称。
请参阅http://api20.cakephp.org/class/model
发布于 2012-03-20 17:45:24
您是否考虑过更改model的validationDomain属性?(编辑:我刚刚注意到@Nappo提出了这个建议)
或者,如果这对你来说不够灵活,你可以在你的模型中覆盖CakePhp的invalidate()函数,如下所示:
/**
 * Overrides Model.php's invalidate function
 */
public function invalidate($field, $value = true) {
  if (is_string($value)) {
    return parent::invalidate($field, __d('my_app_name', $value));
  }
  else {
    return parent::invalidate($field);
  }
}您可以将其放入您的AppModel或您希望更改消息的特定模型中。
https://stackoverflow.com/questions/9783772
复制相似问题