首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将域字符串添加到CakePHP模型中的验证消息

将域字符串添加到CakePHP模型中的验证消息
EN

Stack Overflow用户
提问于 2012-03-20 16:53:25
回答 2查看 1K关注 0票数 0

是否可以向CakePHP模型中的验证消息添加域字符串?我用__d()本地化了我所有的消息

代码语言:javascript
运行
复制
echo __d('my_app_name', 'This is a regular message');

但模型中的验证消息是普通字符串或sprintf参数:

代码语言:javascript
运行
复制
'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'),
  )
)

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-20 17:31:58

假设您使用的是CakePHP 2.x:

Cake的Model类有一个属性validationDomain,您只需添加

public $validationDomain = "yourdomain";

到你的模型去得到你想要的东西。

来自API的信息:

ValidationDomain (字符串)

转换验证错误时要使用的验证字符串域的名称。

请参阅http://api20.cakephp.org/class/model

票数 2
EN

Stack Overflow用户

发布于 2012-03-20 17:45:24

您是否考虑过更改model的validationDomain属性?(编辑:我刚刚注意到@Nappo提出了这个建议)

或者,如果这对你来说不够灵活,你可以在你的模型中覆盖CakePhp的invalidate()函数,如下所示:

代码语言:javascript
运行
复制
/**
 * 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或您希望更改消息的特定模型中。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9783772

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档