问题:
在tp3下开发一个多语言的网站,当用到自动验证的时候在Model里面定义验证属性时没法使用L()方法。没法提示多语言的错误提示信息
解决方法:
1、先将 protected $_validate 方法中的提示改为, 语言包里面的提示名称,如下
protected $_validate=array(
array('order_info','cart_not','valid_cart_null',1,'callback'),
array('name','require','valid_name_null'),
array('mobile','require','valid_mobile_null'),
array('mobile', 'funcphone', 'valid_mobile_error', self::MUST_VALIDATE , 'callback'),
/* 验证邮箱 */
array('email', 'email', 'valid_email_error', self::MUST_VALIDATE ), //邮箱格式不正确
);
2、在 _initialize()方法中遍历并修改,$this->_validate 中提示的信息,就可以解决多语言提示的问题了 public function _initialize(){
foreach ($this->_validate as $key=> &$vo){
$vo[2]=L($vo[2]);
}
}