laravel的表单验证(下面有些信息未验证,转的)
后台写法:
1.1类的方法
$rules = ['email'=>'required|between:4,20','password'=>'required|between:6,20'// 'code'=>'required|between:4,4' ]; $message = ['email.required'=>'账号不能为空!','email.between'=>'账号必须在6-20位之间!','password.required'=>'密码不能为空!','password.between'=>'密码必须在6-20位之间!',// 'code.required'=>'验证码不能为空!',// 'code.between'=>'验证码必须为4位!', ]; $validator = Validator::make($input,$rules,$message);
1.2其实页可以用控制器集成的validate()方法
$message = ['username.required'=>'账号不能为空!','password.required'=>'密码不能为空!',// 'code.required'=>'验证码不能为空!',// 'code.between'=>'验证码必须为4位!', ];$this->validate($request, ['username' => 'required|max:10','password' => 'required',],$message);参数说明: public function validate(Request $request, array $rules, array $messages = [], array $customAttributes = [])
返回的错误代码
return back()->with('msg','密码错误!');
视图
@if(session('msg')) <p style="color:red">{{session('msg')}}</p> @endif @if(count($errors)>0) @if(is_object($errors)) @foreach($errors->all() as $error) <p style="color:red">{{$error}}</p> @endforeach @else <p style="color:red">{{$errors}}</p> @endif @endif
基础验证例子
$validator = Validator::make(array('name' => 'Dayle'),array('name' => 'required|min:5') );
传递给 make 函数的第一个参数是待验证的数据,第二个参数是对该数据需要应用的验证规则。多个验证规则可以通过 "|" 字符进行隔开,或者作为数组的一个单独的元素。
通过数组指定验证规则
代码如下:
$validator = Validator::make( array('name' => 'Dayle'), array('name' => array('required', 'min:5')) );
一旦一个 Validator 实例被创建,可以使用 fails (或者 passes)函数执行这个验证。
代码如下:
if ($validator->fails()) { // The given data did not pass validation }
如果验证失败,您可以从验证器中获取错误消息。
代码如下:
$messages = $validator->messages();
您也可以使用 failed 函数得到不带错误消息的没有通过验证的规则的数组。
代码如下:
$failed = $validator->failed();
文件验证
Validator 类提供了一些验证规则用于验证文件,比如 size、mimes等。在验证文件的时候,您可以和其他验证一样传递给验证器。
附带错误消息
在一个 Validator 实例上调用 messages 函数之后,将会得到一个 MessageBag 实例,该实例拥有很多处理错误消息的方便的函数。
获取一个域的第一个错误消息
代码如下:
echo $messages->first('email');
获取一个域的全部错误消息
代码如下:
foreach ($messages->get('email') as $message) { // }
获取全部域的全部错误消息
代码如下:
foreach ($messages->all() as $message) { // }
检查一个域是否存在消息
代码如下:
if ($messages->has('email')) { // }
以某种格式获取一条错误消息
代码如下:
echo $messages->first('email', '<p>:message</p>');
注意: 默认情况下,消息将使用与 Bootstrap 兼容的语法进行格式化。
以某种格式获取所有错误消息
代码如下:
foreach ($messages->all('<li>:message</li>') as $message){// }
错误消息 & 视图
一旦您执行了验证,您需要一种简单的方法向视图反馈错误消息。这在 Lavavel 中能够方便的处理。以下面的路由作为例子:
代码如下:
Route::get('register', function() { return View::make('user.register'); }); Route::post('register', function() { $rules = array(...); $validator = Validator::make(Input::all(), $rules); if ($validator->fails()) { return Redirect::to('register')->withErrors($validator); } });
注意当验证失败,我们使用 withErrors 函数把 Validator 实例传递给 Redirect。这个函数将刷新 Session 中保存的错误消息,使得在下次请求中能够可用。
然而,注意我们没有必要明确的在 GET 路由中绑定错误消息到路由。这是因为 Laravel 总会检查 Session 中的错误,并自动绑定它们到视图如果它们是可用的。所以,对于每个请求,一个 $errors 变量在所有视图中总是可用的,允许您方便的认为 $errors 总是被定义并可以安全使用的。$errors 变量将是一个 MessageBag 类的实例。
所以,在跳转之后,您可以在视图中使用自动绑定的 $errors 变量:
代码如下:
<?php echo $errors->first('email'); ?>
可用的验证规则下面是一个所有可用的验证规则的列表以及它们的功能: 代码如下:
......
转:http://blog.csdn.net/ghost_hell/article/details/53690137
laravel的表单验证(下面有些信息未验证,转的)相关推荐
- js实现表单及时验证功能 用户信息立即验证
问题:表单怎么在输入后立即验证,而不是提交后再验证那么不方便(网上搜到的要么是模棱两可,要么是残缺不全-) 方法:鉴于此,小可,水山奇,将其代码补全,加上小可我个人的理解(注释)在上面,仅供后来者少走 ...
- laravel 的 表单请求
在对文章.帖子等信息进行创建.更新的时候,需要进行表单验证的时候,一般我们使用Request来获取输入的值来进行验证,这样需要在每一个方法中进行书写验证规则. laravel 提供了创建表单请求,我们 ...
- ant4 多个form 验证_ant-design表单处理和常用方法及自定义验证操作
首先要说一下antdesign这个框架API和demo丰富,而且开发环境提供对应的warning来纠正用户的错误.是一个很好的组件库. 关于表单验证方面是依赖于 async-validator 库.百 ...
- 『ExtJS』表单(一)常用表单控件及内置验证
几点说明 关于ExtJS的表单,我打算分为三个部分来写 常用表单控件及内置验证 -- 这里主要是JS代码 表单行为与Asp.NET页面的消息回复 -- 这里既有JS代码,与有C#代码,我主要是使用As ...
- 前端:简述表单提交前如何进行数据验证
前端:简述表单提交前如何进行数据验证 通常在提交表单数据时,我们会对数据进行验证,例如某些字段是必填字段,不能为空,这时应该如何做呢?有如下三种方法: 一.在button的submit事件进行判断 & ...
- laravel 自定义表单请求验证 增加 emoji 过滤
表单请求验证增加一个自定义类过滤 emoji // 在 app/Providers/AppServiceProvider.php 中use use Illuminate\Support\Facades ...
- 利用JS提交表单的几种方法和验证
工作中发现表单提交方便的问题,很多时候IE下提交好好的,打了火狐下就出现了问题,利用提交按钮就不成功了,于是利用JS的方式就成功了,也不知道为什么.在导师的催促下就总结出以下的几种常用表单提交的方法. ...
- 表单账号,密码,邮箱验证登录
1.要求代码实现如下: "账号"和"密码"为必填项且自动获得光标焦点: 设置"密码"由字母开头,长度为6-10,仅包含数字,字母和下划线: ...
- php表单显示mysql数据库_php用表单形式显示数据库信息
展开全部 初学者写e68a84e8a2ad3231313335323631343130323136353331333335333734的,你可以试试 请输入用户名称 用户名称 年龄 // mysql_ ...
- Element UI 表单在el-form-item中使用自定义验证规则
1:官网示例 <el-form :model="ruleForm" status-icon :rules="rules" ref="ruleFo ...
最新文章
- 认识flask框架-2
- Import-Module : 未能加载指定的模块“\Neo4j-Management.psd1”
- Android桌面悬浮窗进阶,QQ手机管家小火箭效果实现
- Java基础学习网站收藏
- android137 360 双击三击事件
- Linux社区关于链表的bug讨论我们要看一下
- std::string与MFC的CString的比较
- [2019.1.2]BZOJ2115 [Wc2011] Xor
- NLP学习------HanLP使用实验
- mysql8下的密码过期问题以及navicat登录mysql报错的问题
- java动态bean_Java如何操作对象(bean)进行动态排序?
- Windowsxp系统无法安装新字体
- UTONMOS:中国区块链专利申请数量占全球总量的84%
- MAC开机启动项学习笔记
- 转 Oracle 9i,10g,11g各自alert日志的位置
- mysql错误:Found option without preceding group in config file
- 交换机trunk接口
- Ellisys Bluetooth Sniffer 文档 (EEN-BT09) - 访问链接密钥的方法
- win10怎么更新显卡驱动_win10更新失败无限重启怎么办
- thinkphp 添加图片 文字 水印生成带二维码的小程序推广海报
热门文章
- 内层元素设置position:relative后父元素overflow:hidden overflow:scroll失效 解决方法
- Linux pthread_mutex_init()函数 [转]
- Cisdem PDF Converter OCR使用教程:在 Mac 上将PDF 转换为 Word
- DoYourData AppUninser Mac版(Mac应用卸载工具)
- 基础知识:Mac上更改“字体”窗口中的字体大小
- 修复 AirPods 无法连接到 Mac的方法
- 新手必学的Mac使用技巧
- Java基础知识拾遗--IO篇
- cocoapods 更新指定的第三方库
- 数据库查询性能优化之利器—索引(一)