laravel的表单验证(下面有些信息未验证,转的)
Posted 与f
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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的表单验证(下面有些信息未验证,转的)的主要内容,如果未能解决你的问题,请参考以下文章