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的表单验证(下面有些信息未验证,转的)的更多相关文章
- 【干货】Laravel --Validate (表单验证) 使用实例
前言 : Laravel 提供了多种方法来验证应用输入数据.默认情况下,Laravel 的控制器基类使用ValidatesRequests trait,该trait提供了便利的方法通过各种功能强大的验 ...
- laravel 项目表单中有csrf_token,但一直报错419错误 解决redis连接错误:MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persi
laravel 项目表单中有csrf_token,但一直报错419错误,因为项目中使用到Redis缓存,在强制关闭Redis后出现的问题,查询laravel.log文件查找相关问题 安装redis后在 ...
- 利用JS提交表单的几种方法和验证(必看篇)
第一种方式:表单提交,在form标签中增加onsubmit事件来判断表单提交是否成功 ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 <scr ...
- laravel框架——表单验证
创建路由 Route::get('test','VerController@index'); Route::post('tosubmit','VerController@tosubmit'); 在控制 ...
- [Laravel 5] 表单验证 Form Requests and Controller Validation
本文 转载自:http://blog.hsin.tw/2015/laravel-5-note09-form-requests-and-controller-validation/ 文章解答了我的困惑非 ...
- Laravel Form 表单的数据校验
例如,要使用手机号加验证码的方式提供登录网站的功能,那么在处理前端提交的 form 表单时,就不得不对提交的手机号及验证码做基本的数据校验. 手写规则,非常浪费时间.使用 laravel 内置的 va ...
- Javascript高级编程学习笔记(78)—— 表单(6)HTML约束验证API
自动切换焦点 使用JS可以极大地提升表单的易用性 其中最常用的一种就是当用户填写完当前字段后焦点自动切换到下一个字段 以下方的HTML代码为例: <input type="text&q ...
- Servlet作业2-将表单提交的商品信息输出到页面中
1,表单页面 shangpin.html <!DOCTYPE html> <html> <head> <meta charset="UTF-8&qu ...
- 利用JS提交表单的几种方法和验证
第一种方式:表单提交,在form标签中增加onsubmit事件来判断表单提交是否成功 <script type="text/javascript"> function ...
随机推荐
- HDU 4638 Group (2013多校4 1007 离线处理+树状数组)
Group Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submi ...
- PatchGuard Disabled V3
https://twitter.com/Fyyre http://www.m5home.com/bbs/thread-5893-1-1.html http://pan.baidu.com/share/ ...
- 【mybatis】mybatis多表联查,存在一对多关系的,实体中使用List作为字段接收查询结果的写法
实体如下: IntegralGoods 积分商品 IntegralGoodsImg 积分商品图片 ShelfLog 积分商品自动上架记录 IntegralGoods :IntegralGoodsIm ...
- 解决Centos运行yum 报错:坏的解释器
# ll /usr/bin/python python python2 python2.6 python2.7 python.bak 1,这里先备份原来的/usr/bin/python 为python ...
- Xilinx Spartan6常用资源Verilog例化
// DSP48A1 : In order to incorporate this function into the design, // Verilog : the following insta ...
- SQL盲注测试高级技巧
写在前面: 这篇文章主要写了一些加快盲注速度的技巧和盲注中比较精巧的语句,虽然注入并不是什么新技术了.但是数据库注入漏洞依然困扰着每一个安全厂商,也鞭策着每一个安全从业者不断前进. 正文: 首先来简单 ...
- 高性能WEB开发:Javascript自身执行效率
Javascript中的作用域链.闭包.原型继承.eval等特性,在提供各种神奇功能的同时也带来了各种效率问题,用之不慎就会导致执行效率低下. 1.全局导入 我们在编码过程中多多少少会使用到一些全局变 ...
- Log文件太大,手机ROM空间被占满
客户要装车,进行项目验收了. 今天拿着几台手机去客户处,其中有一台手机从昨天晚上开始就一直开着我们的APP,今天早晨打开手机发现APP没有反应了. 在程序列表中将其杀掉,然后再启动程序,发现程序不能启 ...
- nodejs vue SyntaxError:Block-scoped declarations (let,const,function,class) not yet supported
下午在git上导入之前写的代码到本地环境,执行npm run dev报错. 在我之前的环境中是没有问题的,这个错误信息也没看懂是什么原因引起的, 猜测可能是nodejs版本太低,于是重新下载了一个wi ...
- JVM性能监控工具(一)-jdk命令行工具
转载:http://blog.csdn.net/top_code/article/details/51456186 当系统出bug需要定位问题的时候,知识.经验是关键基础,数据是依据,工具是运用知识处 ...