2015-03-28 23:08:58 7051次浏览 5条回答 2 悬赏 5 金钱

今天在看yii2的时候,rules规则可以验证信息的合法性,没想到的是还可以返回错误信息。比如邮件不合法啊,字符串长度不够等等。这个问题的解决方法是,规则中添加message即可。
例如:
['email','email','message'=>'邮件不合法']
如此定义,在检测email的时候会验证其合法性。如果非法,报错信息便会返回。
不过,问题是当什么都不填写,input失去焦点后也会返回错误信息,还是英文的。一直不知道原因,开始的思路还是在rules规则里面想办法,当然最后是无解。
还好有tp框架的经验,想到了是不是语言的配置。yii2默认的语言配置是en,即English。
于是果断在web.php中加入如下代码:
'language'=>'zh-CN'
此刻就发生了奇迹,input在失去焦点后,报错信息就变成了想要的中文。
真心豁然开朗的感觉。这对新手的我来说莫大的安慰。

现在想想,就rules规则的验证报错信息就一个message,是否均可用在提交前前端的验证以及提交表单后的再次验证。意思是不用通过language。如此的话,在自定义报错信息的时候会灵活些。
或许就语言配置也是比较灵活的,我还不清楚。
个人积分还比较少,所以该文档价格低了些。嘿嘿。莫嫌弃啊,亲。
还望释异!!!
2013年3月28日

  • 回答于 2015-03-30 13:12 举报

    从你描述来看,对Yii2的多语言已经有所了解,请问你想问的重点在哪?

    1 条回复
    回复于 2015-03-30 16:34 回复

    表示对tp有所了解,突然想到了是否可以通过语言配置解决而已!没想到装上了。
    这个问题的叙述在于,碰到了问题不知道该如何下手啊?后面的路不好走...

  • 回答于 2015-03-31 21:24 举报

    哈哈,看了一会儿终于知道重点在哪里了。
    yii2.0国际化做的挺好,但是不建议初学就研究language的问题,还是把文档看完、类的参考手册看看。
    比如你这个问题,当input失去焦点后,显示英文的提示,其实这个提示也可以自己用message设置。
    因为input空白并且失去焦点,js检测是你没有填写内容,与['email','required']这个规则不符。
    所以你只要这样在rules()里写一句:
    ['email','required','message'=>'此项不可以为空']
    就行了

  • 回答于 2015-07-13 18:04 举报

    请问你的web.php是哪儿来的?是旧版本的原因吗

    1 条回复
    回复于 2015-07-14 14:04 回复

    版本是yii2,高级版和基础版均有!若没有可以自行建立!

  • 回答于 2016-11-15 22:11 举报

    太厉害了!!!!

  • 回答于 2017-12-07 16:09 举报

    太强了吧!

您需要登录后才可以回答。登录 | 立即注册
鬼一浪人
副总裁

鬼一浪人 魔都

注册时间:2015-03-28
最后登录:2023-12-26
在线时长:57小时24分
  • 粉丝29
  • 金钱3960
  • 威望85
  • 积分5380

热门问题