【问题标题】:How to do complex validation in laravel across multiple fields?如何在 laravel 中跨多个字段进行复杂的验证?
【发布时间】:2014-04-09 08:41:24
【问题描述】:

我有一个要求您输入地址的表格。请求的字段是:

  1. 街道地址
  2. 郊区
  3. 邮政编码

对这些字段进行单独验证很容易。您可以简单地使用“required”和“min”等来确保它已被填写。但我需要第三个验证选项来执行以下操作:

  1. 构建一个由这三个参数组成的字符串
  2. 将这些字段传递给名为“addressValidator”的服务
  3. 确认地址是否“整体”有效
  4. 如果它们都失败,则仅将错误消息放在其中一个字段(街道地址)下

您将如何在表单上创建这样的验证器?

【问题讨论】:

    标签: forms laravel


    【解决方案1】:

    只是扩展验证器

    编辑:和你的消息包方法

    private $moreMessages = array();
    
    public function postStore()
    {
        ...
        ...
        if($validator->passes())
        {
             ...
             ...
             // pass data to the other validator...
             if($this->extendedValidator($data))
             {
               /// yaay!! i can store now!
             }
             else
             {
                 return Redirect::to('')->with('messages',$this->moreMessages);
             }
        }
    }
    
    private function extendedValidator($data = array())
    {
       $passed = true;
       // if validator address fails
           // $passed = false;
           // $this->moreMessages['address'] = 'blabla';
    
       // if validator birthday fails
           // $passed = false;
           // $this->moreMessages['birthday'] = 'blabla';
    
       return $passed;
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-04-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-26
      • 2018-04-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多