自动验证
一般一个框架都会提供自动验证的机制,在TP里面的验证的规则是卸载模型里面进行验证的,但是自 laravel 里面的思想有些不一样,他的验证规则可以写在控制器里面,也可以单独写在一个专门的验证文件。并且 laravel 里面的验证不通过情况下的提示信息和表单数据是保存在 session 里面的,并且验证不通过的情况下回跳到上一个页面。
在前端页面中可以通过 JavaScript 验证表单的数据有效性,但是如果用户的浏览器版本过低或者直接禁用 JavaScript ,则前端验证可能会失效,这样就不能保证数据的有效性。所以后端也需要作相应的验证操作,这个操作在 laravel 中称之为自动验证(在 ThinkPHP 中也有自动验证)。
1.准备工作
(1)可以使用表单的页面(视图),此处可以使用之前的模板文件,并创建响应的路由和方法
2.验证方式一(控制器方式验证:推荐)
(1)基本语法
使用控制器中的 validate
方法来完成,
t
h
i
s
−
>
v
a
l
i
d
a
t
e
(
this->validate(
this−>validate(request,[验证规则]);
如果验证失败,laravel
会自动将用户重定向回上一个位置,并将验证错误信息一次性存放到 session
中。请求验证:
扩展补充:如何得知一个请求类型?
语法:input::method(); 返回 get 或 post
(2)基本验证规则
required: 不能为空
max:255最长255个字符,
min:1最少1个字符
email:验证邮箱是否合法
confirmed:验证两个字段是否相同,如果验证的字段是password,则必须输入一个与之匹配的password_confirmation字段
integer:验证字段必须是整型
ip:验证字段必须是IP地址
numeric 验证字段必须是数值
max:value 验证字段必须小于等于最大值,和字符串,数值,文件字段的size规则一起使用。
min:value 验证字段的最小值,对字符串、数值、文件字段而言,和size规则使用方式一致。
size:value 验证字段必须有和给定值value想匹配的尺寸,对字符串而言,value是相应的字符数目,对数值而言,value是给定整型值;对文件而言,value是相应的文件字节数。
string 验证字段必须是字符串
unique:表名,字段,需要排除的ID
注意:多个验证规则可以通过 | 字符进行隔开
注意:$this->validate(数据对象,[数组形式的验证规则]);
(3)输出错误信息
效果:
(4)把输出效果转换成中文
由于中文和英文都属于语言范畴,如果要切换提示文字,则需要有中文语言包的支持。目前框架只有 en 语言包,如果需要其他语言包就要去下载
网址:https://packagist.org composer 主要的代码托管网站
在官网搜索 laravel-lang
注意:后期下载软件依赖的时候一般会去综合一下下载量和收藏量进行下载
- 寻找下载命令
- 使用 composer 命令安装,在项目根目录下运行上述命令
语言包文件位于 vendor/caoue/laravel-lang 中:将你需要的语言目录复制到 resources/lang 目录下即可。
将需要的语言包复制到语言包目录:
根据提示:
简称就是语言包的文件夹名称
测试效果:
注意:并不是所有的字段都有对应的翻译( 或者有的翻译并不是很准确),如果想自定义翻译,则需要去修改语言包文件代码