循环验证错误,并显示正确的错误 - Laravel 5.2

时间:2016-07-27 00:51:37

标签: php validation laravel laravel-5.2

我有一个注册系统,我需要显示出现的任何验证错误。我的大多数验证都是由JavaScript检查的,因为我使用的是Semantic-UI Framework。但是我有两个自定义验证规则无法在JavaScript中真正显示,因此我需要查看它们中的哪两个错误消息,并闪现正确的错误消息。

这是我的注册函数,带有验证:

 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();

正如您所看到的,有两个自定义错误消息,并且如果用户只有一个错误消息,它将使用该消息闪烁我的Sweet-alert模式。

我怎样才能循环显示错误消息并查看哪个错误,并显示该错误的特定Flash消息?

1 个答案:

答案 0 :(得分: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
}