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 自动验证,提示验证成功,失败信息,引入语言包相关推荐

  1. Java项目启动成功、失败信息实时反馈提醒(邮件或者短信)

    原文作者:程序猿杨鲍 转载声明:转载请注明原文地址,注意版权维护,谢谢! 在开发的流程中必须涉及的项目的部署发布,这个过程也肯定会有成功失败,在不同的公司里采用的提醒方式不同.在说明下面的方案前,需要 ...

  2. 百度网盘登陆验证提示:无法访问此页面,或者二维码显示失败,弹窗显示:无法访问此页面,确保web地址。。。。

    百度网盘登陆验证提示:无法访问此页面,或者二维码显示失败,弹窗显示:无法访问此页面,确保web地址.... 遇到百度网盘登陆时显示下面的情况: 原因:是自己电脑的IE浏览器设置出了问题,没有显示出来应 ...

  3. icloud连接服务器时出现问题_登录iCloud提示验证失败,连接到服务器时出现问题怎么办...

    若您在 iPhone/iPad 上使用 Apple ID 登录 iCloud 时,提示"验证失败:连接到服务器时出现问题",一般是网络连接出现异常导致,请参考如下信息尝试解决. 检 ...

  4. 从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件

    本系列文章导航 从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery ( ...

  5. jQuery框架学习第十一天:实战jQuery表单验证及jQuery自动完成提示插件

    jQuery框架学习第一天:开始认识jQuery jQuery框架学习第二天:jQuery中万能的选择器 jQuery框架学习第三天:如何管理jQuery包装集  jQuery框架学习第四天:使用jQ ...

  6. [乐意黎转载]从零开始学习jQuery (十一) 实战表单验证与自动完成提示插件

    从零开始学习jQuery (一) 开天辟地入门篇 从零开始学习jQuery (二) 万能的选择器 从零开始学习jQuery (三) 管理jQuery包装集 从零开始学习jQuery (四) 使用jQu ...

  7. 非空验证方法(多值)和BindingResult提示验证信息

    非空验证方法(多值) function save() {//保存记录checkBlank([['type_name','类型名称'],['type_code','类型标识']]);if(!isNumb ...

  8. xml文件的xsd验证失败信息

    Referenced file contains errors http://www.springframework.org/schema/aop/spring-aop-4.1.xsd 最近一个jav ...

  9. idea验证失败_iPhone提示“验证失败,连接apple id服务器时出错”怎么解决?

    不少朋友在使用苹果设备的朋友们在设备屏幕上面,可能会遇到提示"验证失败 连接Apple ID时出错"这样的提示,不知道这是什么原因,应该如何解决?下面就针对"验证失败 连 ...

最新文章

  1. java中 如何用if_不在Java中使用if语句
  2. GC garbage collection 垃圾回收机制
  3. 干死该死的横向滚动条
  4. 《怪物猎人》战斗核心设计分析
  5. 【色彩管理】YUV色彩模式详解
  6. 核心频率个加速频率_流处理器、核心频率、 位宽……这些显卡参数你知道吗?—— 电脑硬件科普篇(八)...
  7. 作为IT从业者,你是如何做好个人职业规划?
  8. 为数据访问代码编写测试–不测试框架
  9. socket 编程入门教程(一)TCP server 端:7、接收与发送
  10. Nokia真机测试程序自动退出现象搜集[1][javaME]
  11. Flex 学习笔记 提高编译速度
  12. 学校老师要求微信群里的家长下载钉钉建群,解散微信群,钉钉是不正当商业竞争吗?
  13. Illustrator CS6高清原创视频教程全集
  14. 赋值运算和赋值表达式
  15. 看看谁是中国最受欢迎的50大技术博客?
  16. C语言零基础——简单算术刷题系统
  17. Python学习 | 2021-11-05 Scipy聚类色彩提取
  18. JAVA中String、StringBuffer和StringBuider类
  19. 朋友圈都在说的央行数字货币,究竟跟你有什么关系
  20. 一步一步学习Redis——使用config命令查看或设置配置项

热门文章

  1. 【3D目标检测】[看code] VoxelRCNN RPN(一)
  2. python实现俄罗斯方块小游戏
  3. 前后端部署在两台服务器 服务器配置要求_漫谈前后端分离
  4. python写梦幻西游手游脚本辅助_深入解析Lua脚本加密技术,给游戏代码加上“紧箍咒”...
  5. MTK平台基于EV1527的无线接收和发射程序
  6. EV1527射频模块调试一二三
  7. 如何用python爬取e-hentai的图片
  8. linux otg u盘,如何使用OTG手机功能U盘?
  9. Linux下查看隐藏文件夹
  10. Tomcat配置完成后打不开localhost网页解决方法