• 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

  • 相关阅读:
    【LINUX编程】一个基于C/S结构的简单通讯程序
    【LINUX内核】LINUX内核编译
    C语言中的auto, static, const, extern, register, restrict, volatile 关键字
    【LINUX编程】Makefile的基本介绍
    【LINUX编程】关于man的详细用法
    DOTween动画插件详解
    cas server端的loginwebflow详细流程
    Linux SSH远程文件/目录传输命令scp
    C#去掉字符串中特定ASC码字符
    解決 Flash 蓋住彈出目錄的方法(转载)
  • 原文地址:https://www.cnblogs.com/fps2tao/p/8012522.html
Copyright © 2020-2023  润新知