2015-04-05 253 views
7

我已經完成了laravel中變量驗證的所有工作,但對於電子郵件,我得到了一個簡單問題。如何在laravel驗證中驗證多個電子郵件?

從Laravel的文檔,

'email' => 'required|email' 

我才知道這是隻有一個電子郵件地址,但對於像,

[email protected],[email protected], [email protected],com 

當我發送電子郵件我仍然得到的數組電子郵件不是有效的電子郵件。 我做更喜歡,

'email' => 'required|email|array' 

但我仍然有錯誤。可以任何身體幫助。

感謝,

回答

16

你需要編寫自定義的驗證,這將需要在陣列和陣列手動驗證每個電子郵件國稅發。在Laravel 5請求你可以做這樣的事情

public function __construct() { 
    Validator::extend("emails", function($attribute, $value, $parameters) { 
     $rules = [ 
      'email' => 'required|email', 
     ]; 
     foreach ($value as $email) { 
      $data = [ 
       'email' => $email 
      ]; 
      $validator = Validator::make($data, $rules); 
      if ($validator->fails()) { 
       return false; 
      } 
     } 
     return true; 
    }); 
} 

public function rules() { 
    return [ 
     'email' => 'required|emails' 
    ]; 
} 
+1

爲了擴展這個答案,記得要加你的validation.php語言文件自定義驗證消息。 – chifliiiii 2016-12-06 00:45:58

+0

此外,[文檔](https://laravel.com/docs/5.5/validation#using-extensions)建議將它放在'\ App \ Providers \ AppServiceProvider :: boot'中 – mpen 2018-01-02 01:43:36