laravel 自动验证,提示验证成功,失败信息,引入语言包
JavaScript也可以进行一些验证操作,但是有些情况下不好用(禁用JavaScript)。这时候就要使用后端的一些机制。能够在后端对用户提交的数据进行验证,这个就是后端的自动验证。
案例:编写自动验证实例
使用biaodan表单页面,提交到testbiaodan路由
先创建两个路由:
Route::get('biaodan','TestController@biaodan');
Route::post('testbiaodan','TestController@testbiaodan')->name('tb');
编写控制器方法:
// 使用biaodan表单页面,提交到testbiaodan来进行自动验证
public function biaodan(){return view('biaodan');
}
//用来自动验证
public function testbiaodan(Request $request){/*
1,自动验证
2,获取数据
3,根据写入的结果进行不同的响应*/
$this->validate($request,[
//对于不同的的规则,用|分隔开'id' => 'required|min:2|max:6','name' => 'required|min:2|max:255|string',// integer在设定的0-100范围内,写不写效果一样,不写integer的话,当要验证的信息的超过设定的0-100,将验证失败'age' => 'required|integer|min:0|max:100','email' => 'required|email']);// 验证成功后提示信息echo '验证成功';
}
创建biaodan视图文件,提交地址为testbiaodan
<form action="{{route('tb')}}" method="post"><input type="text" name="id" placeholder="学号"/><br /><input type="text" name="name" placeholder="姓名"/><br /><input type="text" name="age" placeholder="年龄"/><br /><input type="text" name="email" placeholder="邮箱"/><br /><!-- 下面两种方式都可使用 --><!-- <input type="hidden" name="_token" value="{{csrf_token()}}"/> -->{{csrf_field()}}<input type="submit"/></form>
验证规则大全
array
该字段必须是PHP数组
before:date
验证字段必须是指定日期之前的一个数值,该日期将会传递给PHP strtotime函数。
between:min,max
验证字段尺寸在给定的最小值和最大值之间,字符串、数值和文件都可以使用该规则
boolean
验证字段必须可以被转化为boolean,接收true, false, 1,0, “1”, 和 "0"等输入。
confirmed
验证字段必须有一个匹配字段foo_confirmation,例如,如果验证字段是password,必须输入一个与之匹配的password_confirmation字段
date
验证字段必须是一个基于PHP strtotime函数的有效日期
date_format:format
验证字段必须匹配指定格式,该格式将使用PHP函数date_parse_from_format进行验证。你应该在验证字段时使用date或date_format
different:field
验证字段必须是一个和指定字段不同的值
digits:value
验证字段必须是数字且长度为value指定的值
digits_between:min,max
验证字段数值长度必须介于最小值和最大值之间
distinct
处理数组时,验证字段不能包含重复值:
email
验证字段必须是格式化的电子邮件地址
exists:table,column
验证字段必须存在于指定数据表
基本使用:
file
该验证字段必须是上传成功的文件
filled
该验证字段如果存在则不能为空
image
验证文件必须是图片(jpeg、png、bmp、gif或者svg)
in:foo,bar…
验证字段值必须在给定的列表中
in_array:另一个字段
验证字段必须在另一个字段中存在
integer
验证字段必须是整型
ip
验证字段必须是IP地址
JSON
验证字段必须是有效的JSON字符串
max:value
验证字段必须小于等于最大值,和字符串、数值、文件字段的size规则一起使用
min:value
验证字段的最小值,对字符串、数值、文件字段而言,和size规则使用方式一致。
nullable
验证字段必须为null,这在验证一些可以为null的原生数据如整型或字符串时很有用。
numeric
验证字段必须是数值 (包括正数,负数)
present
验证字段必须出现在输入数据中但可以为空。
regex:pattern
验证字段必须匹配给定正则表达式
required
输入字段值不能为空,以下情况字段值都为空:
required_unless:anotherfield,value,…
除了 anotherfield 字段等于value,验证字段不能空
required_with:foo,bar,…
验证字段只有在任一其它指定字段存在的话才是必须的
required_with_all:foo,bar,…
验证字段只有在所有指定字段存在的情况下才是必须的
required_without:foo,bar,…
验证字段只有当任一指定字段不存在的情况下才是必须的
required_without_all:foo,bar,…
验证字段只有当所有指定字段不存在的情况下才是必须的
same:field
给定字段和验证字段必须匹配
size:value
验证字段必须有和给定值value相匹配的尺寸,对字符串而言,value是相应的字符数目;对数值而言,value是给定整型值;对文件而言,value是相应的文件字节数
string
验证字段必须是字符串
验证成功提示信息
在TestController.php定义的用来验证的方法里,添加echo " 内容"
输出信息。。
如果表单页面验证成功就会显示输出成功信息。
//用来自动验证
public function testbiaodan(Request $request){$this->validate($request,['name' => 'required|min:2|max:255','age' => 'required|integer|min:0|max:100','email' => 'required|email']);// 验证成功后提示信息echo '验证成功';
}
显示验证错误信息提示(英文提示,中文提示)
一,英文提示(默认)
在表单视图文件里,加入下面这些判断错误信息,$errors变量用来提取错误信息。
@if (count($errors) > 0)@foreach ($errors->all() as $error)<li>{{ $error }}</li>@endforeach@endif
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1"><title></title><!-- Fonts --><link href="https://fonts.googleapis.com/css?family=Nunito:200,600" rel="stylesheet"><!-- Styles --><style></style></head><body><form action="{{route('tb')}}" method="post"><input type="text" name="id" placeholder="学号"/><br /><input type="text" name="name" placeholder="姓名"/><br /><input type="text" name="age" placeholder="年龄"/><br /><input type="text" name="email" placeholder="邮箱"/><br /><!-- 下面两种方式都可使用 --><!-- <input type="hidden" name="_token" value="{{csrf_token()}}"/> -->{{csrf_field()}}<input type="submit"/><!-- ********************************************************************************* --><!-- 判断验证错误信息,输出的错误信息是英文,需要翻译成中文 --><!-- 如果错误信息的数量大于0 --><!-- 遍历错误,输出错误信息 -->@if (count($errors) > 0)@foreach ($errors->all() as $error)<li>{{ $error }}</li>@endforeach@endif</form></body></html>
现在如果验证失败,就会有提示以下信息
二,中文提示,(自定义错误提示,语言包)
1,自定义验证错误提示:
在验证信息的TestController里定义的方法里,validate的第三个参数用来定自定义错误信息提示,
第三参数,自定义错误信息
验证错误后的提示信息
键对应验证信息的表单的name属性值+判断信息,值是错误提示信息
’name.required’=>‘用户名不能为空’,
//用来自动验证
public function testbiaodan(Request $request){$this->validate($request,['id' => 'required|min:2|max:6','name' => 'required|min:2|max:255',// integer在设定的0-100范围内,写不写效果一样,不写integer的话,当要验证的信息的超过设定的0-100,将验证失败'age' => 'required|integer|min:0|max:100','email' => 'required|email'],[// 第三参数,自定义错误信息// 验证错误后的提示信息// 键对应验证信息的name,加判断信息,值是错误提示信息'name.required'=>'用户名不能为空','name.min'=>'用户名最少为2个字符','name.max'=>'用户名最少为2个字符',]);// 验证成功后提示信息echo '验证成功';
}
现在我们给name的required设置了用户名不能为空。如果用户名表单那里没有输入内容直接提交后,会提示
验证失败后会提示如下信息:
看提示信息会发现,自定义的会是中文,不自定义的还是英文。要想全部提示中文,还得一个个给他设置错误提示,比较麻烦,繁琐,写起来也不方便。那样就可以通过下载的中文语言包来显示中文提示信息。
2,下载中文语言包来,显示中文提示信息。
在自己的larave项目的目录下面,按住shift键+鼠标右击,打开命令行窗口。
输入php artisan 来查看自己的laravel的版本,比如我的就是,7.1.3
下一步就是下载语言包,打开网址查看一下,下载语言包的命令,下载语言包的网址
比如我的就是7.1.3版本的就用composer require caouecs/laravel-lang:~6.0
命令来下载
在文件下打开命令行输入composer require caouecs/laravel-lang:~6.0
开始下载,
提示下载完成之后,打开laravel文件的,目录,。D:\laraveldemo\one\vendor\caouecs\laravel-lang\src\zh-CN
下载后的目录在自己laravel项目下的vendor\caouecs\laravel-lang\src\zh-CN下
复制zh-CN文件到resources/lang下:
**修改配置:**在config/app.php文件进行修改。
现在就可以测试下语言包能不能使用。 删除刚才自定义错误信息的语句(validate的第三个参数)
测试:
在表单里什么都不输入信息,进行验证,提示语言都变成了中文。
也可以给语言包里自定义提示信息:
D:\laraveldemo\one\resources\lang\zh-CN\validation.php里添加提示信息
id是要判断的表单的name属性值,也是TestController.php里面的id表单判断的键名(总之,这几个字段得保持一致)
现在就是提示编号不能为空了
laravel 自动验证,提示验证成功,失败信息,引入语言包相关推荐
- Java项目启动成功、失败信息实时反馈提醒(邮件或者短信)
原文作者:程序猿杨鲍 转载声明:转载请注明原文地址,注意版权维护,谢谢! 在开发的流程中必须涉及的项目的部署发布,这个过程也肯定会有成功失败,在不同的公司里采用的提醒方式不同.在说明下面的方案前,需要 ...
- 百度网盘登陆验证提示:无法访问此页面,或者二维码显示失败,弹窗显示:无法访问此页面,确保web地址。。。。
百度网盘登陆验证提示:无法访问此页面,或者二维码显示失败,弹窗显示:无法访问此页面,确保web地址.... 遇到百度网盘登陆时显示下面的情况: 原因:是自己电脑的IE浏览器设置出了问题,没有显示出来应 ...
- icloud连接服务器时出现问题_登录iCloud提示验证失败,连接到服务器时出现问题怎么办...
若您在 iPhone/iPad 上使用 Apple ID 登录 iCloud 时,提示"验证失败:连接到服务器时出现问题",一般是网络连接出现异常导致,请参考如下信息尝试解决. 检 ...
- 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...
- jQuery框架学习第十一天:实战jQuery表单验证及jQuery自动完成提示插件
jQuery框架学习第一天:开始认识jQuery jQuery框架学习第二天:jQuery中万能的选择器 jQuery框架学习第三天:如何管理jQuery包装集 jQuery框架学习第四天:使用jQ ...
- [乐意黎转载]从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件
从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQu ...
- 非空验证方法(多值)和BindingResult提示验证信息
非空验证方法(多值) function save() {//保存记录checkBlank([['type_name','类型名称'],['type_code','类型标识']]);if(!isNumb ...
- xml文件的xsd验证失败信息
Referenced file contains errors http://www.springframework.org/schema/aop/spring-aop-4.1.xsd 最近一个jav ...
- idea验证失败_iPhone提示“验证失败,连接apple id服务器时出错”怎么解决?
不少朋友在使用苹果设备的朋友们在设备屏幕上面,可能会遇到提示"验证失败 连接Apple ID时出错"这样的提示,不知道这是什么原因,应该如何解决?下面就针对"验证失败 连 ...
最新文章
- java中 如何用if_不在Java中使用if语句
- GC garbage collection 垃圾回收机制
- 干死该死的横向滚动条
- 《怪物猎人》战斗核心设计分析
- 【色彩管理】YUV色彩模式详解
- 核心频率个加速频率_流处理器、核心频率、 位宽……这些显卡参数你知道吗?—— 电脑硬件科普篇(八)...
- 作为IT从业者,你是如何做好个人职业规划?
- 为数据访问代码编写测试–不测试框架
- socket 编程入门教程(一)TCP server 端:7、接收与发送
- Nokia真机测试程序自动退出现象搜集[1][javaME]
- Flex 学习笔记 提高编译速度
- 学校老师要求微信群里的家长下载钉钉建群,解散微信群,钉钉是不正当商业竞争吗?
- Illustrator CS6高清原创视频教程全集
- 赋值运算和赋值表达式
- 看看谁是中国最受欢迎的50大技术博客?
- C语言零基础——简单算术刷题系统
- Python学习 | 2021-11-05 Scipy聚类色彩提取
- JAVA中String、StringBuffer和StringBuider类
- 朋友圈都在说的央行数字货币,究竟跟你有什么关系
- 一步一步学习Redis——使用config命令查看或设置配置项
热门文章
- 【3D目标检测】[看code] VoxelRCNN RPN(一)
- python实现俄罗斯方块小游戏
- 前后端部署在两台服务器 服务器配置要求_漫谈前后端分离
- python写梦幻西游手游脚本辅助_深入解析Lua脚本加密技术,给游戏代码加上“紧箍咒”...
- MTK平台基于EV1527的无线接收和发射程序
- EV1527射频模块调试一二三
- 如何用python爬取e-hentai的图片
- linux otg u盘,如何使用OTG手机功能U盘?
- Linux下查看隐藏文件夹
- Tomcat配置完成后打不开localhost网页解决方法