自动验证:前段会一些对表单的验证操作(通过JavaScript),但是JavaScript有些情况下是不好用的(例如禁用JavaScript)。因此后端也需要有一套类似的机制,能够在后端实现对用户提交的数据进行验证,这个就是后端的自动验证
1.准备工作
(1)使用test9表单页面,将其提交到test10路由
创建test9,test10的路由
(2)编写控制器方法
编写test9页面,提交地址为test10
效果:
先验证,在入库
2.验证方式
建议去查看手册
(1)基本语法
使用控制其中的validate方法来完成,
t
h
i
s
−
>
v
a
l
i
d
a
t
e
(
this->validate(
this−>validate(request,{验证规则,{错误信息}});如果验证失败,laeavel会自动将用户重定向会上一个位置,并且验证错误信息一次性存放到session中。
(2)基本验证规则
required:不能为空
max:255 最长255个字符
min:1 最少1个字符
email:验证邮箱是否合法
confirmed:验证两个字段是否相同,如果验证的字段是password,则必须输入一个与之匹配的password_confirmaton字段
integer:验证字段必须是整形
ip:验证字段必须是IP地址
numeric:验证字段必须是数值
max:value:验证字段必须大于等于最大值,和字符串,数值,文件字段的size规则一起使用
min:value:验证字段的最小值,对峙富川,数值,文件字段而言,和size规则使用方法一致
size:value:验证字段必须有和给定值value相匹配的尺寸,对字符串而言,value是相应的字符数目;对数值而言,value是给定整型值;对文件而言,value是相应的文件字节数
string:验证字段必须是字符串
unique:表名,字段,需要排出的ID
注意:多个验证规则可以通过“|”字符进行隔开
语法:$this->validate(数据对象,【数组形式的验证规则】);validate是基类控制器
方法:
(3)输出错误信息
显示验证错误信息
语法:
(4)把输出效果转化成中文
方法1:自定义翻译
可以再自动验证的时候,给validate方法传递第三个参数第三个参数即错误提示:
该方式比较繁琐,每个规则都要自己定义错误信息。
方法2:借助第三方的语言包
由于中文和英文都是属于语言范畴。如果要切换提示信息,则需要有中文语言包的支持。目前框架只有en语言包,则需要其他语言包,需要去下载。
查看版本号;
使用命令:composer require caouecs/laravel-lang:~6.0下载符合版本号的语言包
下载成功:
打开caouecs,将zh-CN复制粘贴放到resources/lang中
打开config文件夹,进行配置
成功: