Request对象上的validate()
Request对象上有一个validate()方法用于大多数验证。如示例7-13
我们只用了四行代码进行验证,但实际上内部做了很多工作。
首先,我们显示定义期望的字段并应用规则(使用管道字符|),然后用管道连接。
接着,validate()方法接收来自$request的数据并验证是否有效。
如果验证通过,可以在控制器内接着进行保存或者其他操作。
如果数据无效,则会抛出ValidationException异常,它包含了路由如何处理异常的说明。如果请求来自于Javascript(或者JSON响应),异常将会包含验证错误json响应,如果不是,则会连同所有用户输入和验证错误重定向回上一页 - 非常适合重新填充失败的表单并显示一些错误。
Laravel 5.5之前版本在控制器上调用validate()
Laravel 5.5之前版本使用($this->validate())而不是在request上调用
Laravel更多验证规则
在例子中我们使用管道语法:'fieldname': 'rule|otherRule|anotherRule',你也可以使用数组语法:'fieldname': ['rule', 'otherRule', 'anotherRule']
此外你可以验证嵌套属性,例如在一个HTML表单有多个用户,每个用户都有个关联的名字,例如
我们没有足够的篇幅来介绍全部,但是这有一些常用的规则和方法:
必填字段
required; required_if:anotherField,equalToThisValue; required_unless:anotherField,equalToThisValue
字段必须包含某些类型的字符
alpha; alpha_dash; alpha_num; numeric; integer
字段必须匹配某些模式
email; active_url; ip
日期
after:date; before:date
数字
between:min,max; min:num; max:num; size:num
图像尺寸
尺寸:min_width=XXX; 也可以使用 and/or 和 max_width, min_height, max_height, width, height, and ratio 结合
数据库
exists:tableName; unique:tableName(应与字段名在同一个表列中查找;有关如何自定义信息,请参阅文档)
Last updated