1. 在第一次验证失败后停止

有时,你希望在某个属性第一次验证失败后停止运行验证规则。为了达到这个目的,附加 bail 规则到该属性:

$this->validate($request, ['title' => 'bail|required|unique:posts|max:255','body' => 'required',
]);

2. 嵌套参数

如果你的 HTTP 请求包含一个 「嵌套」 参数(即数组),那你可以在验证规则中通过 「点」 语法来指定这些参数。

$this->validate($request, ['title' => 'required|unique:posts|max:255','author.name' => 'required','author.description' => 'required',
]);

3. AJAX 请求 & 验证

我们使用传统的表单将数据发送到应用程序。但实际情况中,很多程序都会使用 AJAX 来发送请求。当我们对 AJAX 的请求中使用 validate 方法时,Laravel 并不会生成一个重定向响应,而是会生成一个包含所有验证错误信息的 JSON 响应。这个 JSON 响应会包含一个 HTTP 状态码 422 被发送出去。

4. 表单请求

创建文件

php artisan make:request StoreBlogPost

文件展示

<?phpnamespace App\Http\Requests;use Illuminate\Foundation\Http\FormRequest;
use Illuminate\Http\Request;class StoreServergroupPost extends FormRequest
{//表单授权public function authorize(){//这里可以做一些权限验证//return false;return true;}public function rules(Request $request){$rules = [ 'name' => 'required','selectedMaster' => 'required','selectedFailover' => 'required',];  if($request->selectedFailover){$rules['selectedSlave'] = 'required';$rules['tableData'] = 'required';}   return $rules;}public function messages(){return ['name.required' => '请输入集群名称','selectedMaster.required'  => '请选择主服务器','selectedFailover.required'  => '请选择是否开启','selectedSlave.required'  => '请选择从服务器','tableData.required'  => '网卡信息不能为空',];}//请求之后的钩子public function withValidator($validator){$validator->after(function ($validator) {if ($this->somethingElseIsInvalid()) {$validator->errors()->add('field', 'Something is wrong with this field!');}});}}

控制器类上面引入

use App\Http\Requests\StoreServergroupPost;

控制器方法中使用此类

//这里的类型提示不是Request了
public function store(StoreServergroupPost $request)
{// The incoming request is valid...
}

5. 两种方式

  • 1> 使用validate方法

  • 2> 手动创建验证器实例


$v = Validator::make($input, $rule,$message);if($v->fails()){//return xxxx
}

还可以加验证后的钩子

$validator = Validator::make(...);$validator->after(function ($validator) {if ($this->somethingElseIsInvalid()) {$validator->errors()->add('field', 'Something is wrong with this field!');}
});if ($validator->fails()) {//
}

需要注意的是

  • 使用validate方法直接返回json,并且第一个参数是$request对象,
  • 手动创建的话可以使用$errors = $validator->errors()->toArray();获取错误信息

6. 占位符

:attribute 占位符会被验证字段的实际名称取代。除此之外,你还可以在验证消息中使用其他占位符。例如:

$messages = ['same'    => 'The :attribute and :other must match.','size'    => 'The :attribute must be exactly :size.','between' => 'The :attribute must be between :min - :max.','in'      => 'The :attribute must be one of the following types: :values',
];

7. 获取错误消息

$errors = $validator->errors();

查看特定字段的第一个错误消息#

echo $errors->first('email');

如果你想以数组的形式获取指定字段的所有错误消息,则可以使用 get 方法:

foreach ($errors->get('email') as $message) {//
}

如果要验证表单的数组字段,你可以使用 * 来获取每个数组元素的所有错误消息:

foreach ($errors->get('attachments.*') as $message) {//
}

所有字段的错误消息,可以使用 all 方法:

foreach ($errors->all() as $message) {//
}

判断特定字段是否含有错误消息#

if ($errors->has('email')) {//
}

转载于:https://www.cnblogs.com/redirect/p/8435837.html

laravel5.5表单验证相关推荐

  1. [JAVA EE] Thymeleaf 高级用法:模板布局,带参数的引用片段,表单验证,常用校验注解

    模板布局 公共部分通常定义为模板布局:如页眉,页脚,公共导航栏.菜单等. 模板布局定义方法 布局页中用 th:fragment 定义模板片段,其他页面用 th:insert 引用片段 例如:foote ...

  2. float js 正则 验证_使用HTML和Vuejs进行表单验证

    他们说大多数网络应用只是HTML表单.好吧,表单需要验证,谢天谢地,HTML5带有许多优秀的内置表单验证功能,可用于电子邮件,数字,最大值,分钟等.您甚至可以使用模式编写自己的验证规则.在本文中,我将 ...

  3. JavaScript 表单与表单验证

    JavaScript 表单 JavaScript 表单验证 HTML 表单验证可以通过 JavaScript 来完成. 以下实例代码用于判断表单字段(fname)值是否存在,如果存在,则弹出信息,否则 ...

  4. jquery 实现表单验证功能代码(简洁)

    html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>表单验证页面</title&g ...

  5. 一款比较实用齐全的jQuery 表单验证插件

    一款比较实用,并且验证类型齐全的jQuery表单验证插件.英文版原作者@Vanadium,由我做中文整理.E文水平有限,如果翻译的有问题的,请大家指出,在此感谢~ 可以验证哪些? 文字,日期,邮箱,网 ...

  6. antd 验证 动态 required_3分钟短文:十年窖藏,Laravel告诉你表单验证的正确姿势

    引言 上一章我讲到了使用FormBuilder让后端开发者快速构建前端表单页面,而为了示例, 直接在store方法内把表单数据一股脑存到了数据库. 这!很!危!险! 本文教你正确地验证用户表单提交的数 ...

  7. Angular响应式表单及表单验证

    1. 什么是响应式表单? 响应式表单提供了一种模型驱动的方式来处理表单输入,其中的值会随时间而变化. 响应式表单使用显示的,不可变的方式,管理表单在特定时间点上的状态.对表单状态的每一次变更都会返回一 ...

  8. Bootstrap表单验证插件bootstrapValidator使用方法整理

    插件介绍 先上一个图: 下载地址:https://github.com/nghuuphuoc/bootstrapvalidator 使用方法:http://www.cnblogs.com/huangc ...

  9. Angular 表单验证类库 ngx-validator 1.0 正式发布

    背景介绍 之前写了一篇 <如何优雅的使用 Angular 表单验证>,结尾处介绍了统一验证反馈的类库 ngx-validator ,由于这段时间一直在新模块做微前端以及相关业务组件库,工具 ...

最新文章

  1. ASP.NET实现身份模拟
  2. 基于视觉模型强化学习的通用机器人
  3. 6月8日云栖精选夜读丨阿里云宣布与国内规模最大的汽车企业上汽集团合作
  4. JavaScript OOP(2)定义JavaScript类
  5. 摩尔定律会死亡吗 芯片到底可以变得有多小
  6. 2017百度之星初赛B场第一题Chess--简单杨辉三角问题
  7. 基于jQuery的判断iPad、iPhone、Android是横屏还是竖屏的代码
  8. 华尔街(Wall Street)与先锋集团(Vanguard )之间的战争
  9. 使用Altium Designer绘制电路原理图
  10. 人工智能导论期末复习题
  11. ubuntu查看opencv的版本
  12. 软件设计师真题及解析
  13. 原创 | 使用JUnit、AssertJ和Mockito编写单元测试和实践TDD (六)测试哪些内容:Right-BICEP
  14. webstorm下载破解
  15. 分布式存储与分布式计算
  16. 集合及集合的交,并与差
  17. ROS系统安装 kinetic (超详细)
  18. [日常] NOIWC2019 冬眠记
  19. 设计模式随笔系列:鸭子-策略模式(Strategy)[原]
  20. 读后感之浪潮之巅视界互联网+时代的创新与创业

热门文章

  1. 蓝桥杯2013c++真题:颠倒的价牌
  2. 开源视频质量评价工具: IQA
  3. 开源安卓播放器:Dolphin Player 简单分析
  4. Helm 3 完整教程(六):在模板中使用 Helm 函数
  5. po 价格条件表_海纳易拓图文讲解SAP MM模块采购价格条件
  6. SpringBoot时间格式化
  7. codeforces round div2,3周赛补题计划(从开学到期末)
  8. USACO1.1.2 - Greedy Gift Givers
  9. c语言万年历报告ppt,万年历设计报告
  10. 递归java程序_JAVA编程基础之递归结构