2014-03-06 14 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; 
}