现在我见到的流行的表单验证,大多都是自己写 message 的,比如 { required:true,message:'请输入 xxx'}
。
写少点无所谓,但是字段多了之后就会觉得重复。
而我见过 yii 框架(php 的一个框架)的表单验证,它的 rules 是这样写的
public function rules()
{
return [
// name, email, subject 和 body 属性必须有值
[['name', 'email', 'subject', 'body'], 'required'],
// email 属性必须是一个有效的电子邮箱地址
['email', 'email'],
];
}
指定一个验证器类型,指定要验证的表单字段,然后就开始验证。
每个验证器,它的 message 格式都是一样的,只不过就是 attribute 不一样而已,比如上面可能会这样报错
name 不能为空
那可能你还想让‘ name ’显示成‘姓名’,那么你只需要再写好一个 labels
public function attributeLabels()
{
return [
'name' => '姓名',
'email' => '邮箱',
];
}
这样验证结果就是‘姓名不能为空’,不觉得这样就很轻松吗?
再自由点,你也可以传入一个 message
[['name', 'email', 'subject', 'body'], 'required', ['message' => '爱咋咋地']],
更自由点,你可以自己定义验证逻辑,传个函数即可。(代码不贴了)
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.