2016-07-27 54 views
3

我有一个注册系统,我需要显示出现的任何验证错误。我的大多数验证都是通过JavaScript进行检查的,因为我使用的是Semantic-UI框架。但有2个自定义验证规则,我不能真正显示在JavaScript中,所以我需要查看这两个错误消息中的哪一个,并刷新正确的错误消息。循环验证错误,并显示正确的一个 - Laravel 5.2

这是我与验证注册功能:

public function postRegister (Request $request) { 

     $validator = Validator::make($request->all(), [ 
      'username' => 'unique:users', 
      'email' => 'unique:users', 
      'password' => '', 
     ]); 

     if ($validator->fails()) { 
      flash()->error('Error', 'Either your username or email is already take. Please choose a different one.'); 
      return back(); 
     } 

     // Create the user in the Database. 
     User::create([ 
      'email' => $request->input('email'), 
      'username' => $request->input('username'), 
      'password' => bcrypt($request->input('password')), 
      'verified' => 0, 
     ]); 

     // Flash a info message saying you need to confirm your email. 
     flash()->overlay('Info', 'You have successfully registered. Please confirm your email address in your inbox.'); 

     return redirect()->back(); 

正如你可以看到有两个自定义错误消息,并且如果用户得到只是其中的一个错误,它会闪烁我的甜警报模式与那个消息。

我怎么可能通过我的错误消息循环,看看哪一个我得到错误,并显示一个特定的Flash消息,该错误?

+0

你可以简单地解析用$ validator->消息() –

回答

2

检索所有验证错误的数组,你可以使用errors方法:

$messages = $validator->errors(); 
//Determining If Messages Exist For A Field 
if ($messages->has('username')) { 
    //Show custom message 
} 
if ($messages->has('email')) { 
    //Show custom message 
} 
+0

感谢。这样可行。 – David

+0

不客气。 –