或许很多人都苦恼过,yii2的表单验证错误信息都是英文的,哪怕自定义验证消息,{attribute}
也是英文的,这个问题其实框架本身就能解决。
先来看一个例子:
public function rules()
{
return [
[['username','name','password'],'required']
];
}
这是我定义的一条规则,没有使用自定义错误信息也能实现"中文提示"
用户名不能为空
姓名不能为空
密码不能为空
实现方法分两部
国际化
首先,错误信息是可以翻译成不同语言的,yii2本身提供了国际化支持,我们只要在配置文件中加上
'language' => 'zh-CN'
就可以发现错误信息变成了
username不能为空
name不能为空
...
定义label名
现在唯一的问题就是字段名还是英文的,这个通过在模型中定义一个方法,给每个字段起一个别名
public function attributeLabels()
{
return [
'username' => '用户名',
'name' => '姓名',
'password' => '密码',
'email' => '邮箱',
'phone' => '电话'
];
}
ok,现在就可以实现完全本地化的中文提示了,并不用罗里吧嗦给每个字段定义一条错误消息。