Yii2中Model中rules中自定义message无效的问题原因
- 9416
- PHP
- 35
- super_dodo
- 2016/09/21
今天在使用Yii2中的Model里面的rules规则的时候,希望验证规则不通过的时候出现自己自定义的提示信息。但是按照常规写法部分能按照自定义的语句提示(require integer...),但是对于有max min的就没有按照自定义的形式输出了。
经过查询相关资料以及Yii2的源码yii.validation.js里面有了新的定义tooLong tooShort tooBig tooSmall 等,和Yii1有一定的区别。
如果需要查看相关的Yii2的rule规则请猛击:Yii2中Model的一些常用rules验证规则
public function rules(){ return [ [['name','age'], 'required','message'=>'{attribute}不能为空!!!'], [['age'], 'integer','message'=>'{attribute}为数值类型!!!'], //如果只验证类型的话 [['age'], 'integer','min'=>10,'max'=>100,'tooSmall'=>'{attribute}不能小于10岁','tooBig'=>'{attribute}不能大于100岁'], [['name'], 'string', 'min'=>3,'max'=>10,'tooShort'=>'{attribute}长度不能小于3字符','tooLong'=>'{attribute}长度不能大于10个字符'], [['address'], 'string','max'=>10,'tooLong'=>'{attribute}字符长度过长!'], [['remark'], 'safe'], ]; } public function attributeLabels(){ return [ 'id' => 'ID', 'name' => '姓名', 'age' => '年龄', 'address' => '地址', 'remark' => '备注说明', ]; } // 获取 Model 错误信息中的 第一条, 无错误时 返回 null public static function getModelError($model) { $errors = $model->getErrors(); if(!is_array($errors)) return ''; $firstError = array_shift($errors); if(!is_array($firstError)) return ''; return array_shift($firstError); }
其实Yii2的错误提示信息已经很完整了,可以直接不需要重写message直接使用默认的即可。语言设置成为中文zh-CN设置方法请移步修改Yii2的默认语言language为中文zh-CN的方法
附上yii2的默认的错误提示语中文 yiisoft\yii2\message\zh-CN\yii.php
return [ '{attribute} cannot be blank.' => '{attribute}不能为空。', '{attribute} is invalid.' => '{attribute}是无效的。', '{attribute} is not a valid URL.' => '{attribute}不是一条有效的URL。', '{attribute} is not a valid email address.' => '{attribute}不是有效的邮箱地址。', '{attribute} must be "{requiredValue}".' => '{attribute}必须为"{requiredValue}"。', '{attribute} must be a number.' => '{attribute}必须是一个数字。', '{attribute} must be a string.' => '{attribute}必须是一条字符串。', '{attribute} must be an integer.' => '{attribute}必须是整数。', '{attribute} must be either "{true}" or "{false}".' => '{attribute}的值必须要么为"{true}",要么为"{false}"。', '{attribute} must be equal to "{compareValueOrAttribute}".' => '{attribute}的值必须等于"{compareValueOrAttribute}"。', '{attribute} must not be equal to "{compareValueOrAttribute}".' => '{attribute}的值不得等于"{compareValueOrAttribute}"。', '{attribute} must be greater than "{compareValueOrAttribute}".' => '{attribute}的值必须大于"{compareValueOrAttribute}"。', '{attribute} must be greater than or equal to "{compareValueOrAttribute}".' => '{attribute}的值必须大于或等于"{compareValueOrAttribute}"。', '{attribute} must be less than "{compareValueOrAttribute}".' => '{attribute}的值必须小于"{compareValueOrAttribute}"。', '{attribute} must be less than or equal to "{compareValueOrAttribute}".' => '{attribute}的值必须小于或等于"{compareValueOrAttribute}"。', '{attribute} must be no greater than {max}.' => '{attribute}的值必须不大于{max}。', '{attribute} must be no less than {min}.' => '{attribute}的值必须不小于{min}。', '{attribute} must be repeated exactly.' => '{attribute}必须重复。', '{attribute} should contain at least {min, number} {min, plural, one{character} other{characters}}.' => '{attribute}应该包含至少{min, number}个字符。', '{attribute} should contain at most {max, number} {max, plural, one{character} other{characters}}.' => '{attribute}只能包含至多{max, number}个字符。', '{attribute} should contain {length, number} {length, plural, one{character} other{characters}}.' => '{attribute}应该包含{length, number}个字符。', ]
相关阅读
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
热门文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例
最新文章
- 通过Google API客户端访问Google Play帐户报告PHP库
- PHP执行文件的压缩和解压缩方法
- 消息中间件MQ与RabbitMQ面试题
- 如何搭建一个拖垮公司的技术架构?
- Yii2中ElasticSearch的使用示例