laravel框架(自动验证)

自动验证:前段会有一些对表单里的验证操作(通过JavaScript),但是JavaScript有些情况下是不好用的,(例如禁用JavaScript)。因此后端也需要有一套类似的机制,能够在后端实现对用户提交的数据进行验证,这个就是后端的自动验证。

一、准备工作

1.使用test9表单页面,将其提交到test10路由
创建test9,test10的路由
在这里插入图片描述
2.编写控制器方法
在这里插入图片描述
创建test9页面,提交地址为test10
在这里插入图片描述
在这里插入图片描述
先验证,再入库

二、验证方式

(1)基本语法
使用控制器中的validate方法来完成, t h i s − > v a l i d a t e ( this->validate( this>validate(repuest,[验证规则],[错误信息]);
如果验证失败,laravel会自动将用户重定向回上一个位置,并将错误信息一次性存放到session中。
具体方法可以参考使用手册
--------------------------------------------------------分割线(新增)------------------------------------------------------------------、
(2)基本验证规则
required:不能为空
max:255 最长255个字符
min:1 最少1个字符
email:验证邮箱是否合法
confirmed:验证两个字段是否相同,如果验证的字段是password,则必须输入一个与之匹配的password_confirmed字段

integer:验证字段必须是整型
ip:验证字段必须是ip地址
numeric:验证字段必须是数值
max:value 验证字段必须小于等于最大值,和字符串,数值,文件字段的size规则一起使用
min:value 验证字段的最小值,对字符串,数值,文件字段而言,和size规则使用方式一致

size:value 验证字段必须有和给定值value相匹配的尺寸,对字符串而言,value是相应的字符数目;对数值而言,value是给定整型值;对文件而言,value是相应的文件字节数
string:验证字段必须是字符串
unique:表名,字段,需要排除的ID

注意:多个验证规则可以通过“|”字符进行隔开
语法:$this -> validate(数据对象,[数组形式的验证规则]); validate是基类控制器方法

(3)输出错误信息
那么,如果请求输入参数没有通过给定验证规则怎么办?正如前面提到的,laravel将会自动将用户重定向回上一个位置,此外,所有验证信息会自动一次性存放到session
在这里插入图片描述
效果:
在这里插入图片描述
(4)把输出效果转换成中文
方法一:自定义翻译
可以在定义自动验证的时候,给validate方法传递三个参数,第三个参数即错误提示:
在这里插入图片描述
该方法比较繁琐,每个规则都要自定义错误信息
在这里插入图片描述
方法二:借助第三方的语言包
由于中文和英文都是属于语言范畴,如果要切换提示文字,则需要有中文语言包的支持。目前框架只有en语言包,则需要其他语言需要去下载
网址:https://packagist.org composer主要的代码托管网站
在官网搜索laravel-lang
1.需要寻找下载命令
在这里插入图片描述
2.使用composer安装
在项目根目录下运行上述命令
安装命令:# composer require caouecs/laravel-lang:~6.0

3.使用方法:
语言包文件在wendor/caoue/laravel-lang中;将你需要的语言目录复制到resources/lang目录下即可
在文件(config/app.php)中修改locale的值,改成你需要使用的语言简称。
修改后再次测试:
在这里插入图片描述
变成中文了
注意:并不是所有的字段都有想应的翻译(或者有的翻译可能不是很准确),如果想自己定义翻译,啧需要去修改语言包文件代码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值