2014-03-06 13 views
0

我有一个表单,要求你输入一个地址。要求的字段有:如何在跨多个领域的laravel中进行复杂的验证?

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

在这些领域的个人验证容易。你可以简单地使用“需要”和“分钟”等,以确保它填补,但我需要做下面的第三个验证选项:

  1. 建立一个由这三个参数的
  2. 传递一个字符串这些领域的服务被称为“AddressValidator对象”
  3. 确认,如果地址是“整体”有效
  4. 地方错误消息只在其中的一个字段(街道地址),如果他们都失败

将如何你在表单上创建了这样一个验证器?

回答

0

只是延长验证

编辑:和您的邮件袋法

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; 
}