注册表单验证问题

时间:2017-06-01 10:22:57

标签: php laravel-5 laravel-blade

我在我的注册表单中添加了验证,验证代码正在运行,但错误不会显示在页面中

PHP代码

 public function postSignUp(Request $request)
{
        $this->validate($request, [
            'email'=> 'required|email|unique:users',
            'first_name'=> 'required|max:120',
            'password' => 'required|min:4'
            ]);

        $email = $request['email'];
        $first_name = $request['first_name'];
        $password = bcrypt($request['password']);

        $user =  new User();

        $user->email = $email;
        $user->first_name = $first_name;
        $user->password = $password;

        $user->save();

        Auth::Login($user);

        return redirect()->route('dashboard');
}

Welcome.blade.php代码

@section('content')
@if(count($errors) > 0)
<div class="row">
    <div class="col-md-6">
        <ul>
            @foreach($errors->all() as $error)
                <li>{{$error}}</li>
                @endforeach
        </ul>
    </div>
</div>
@endif

php代码正在运行,因为如果我尝试注册已经采用它的电子邮件不会注册,但错误是错误未显示在欢迎页面中

2 个答案:

答案 0 :(得分:0)

您正在检查函数计数($ errors),但这是一个对象,它将始终输入条件,因为您计算的对象不是列表本身。

替换 @ if(计数($ errors)&gt; 0) with @if(!empty($ errors-&gt; all()))

答案 1 :(得分:0)

您没有将错误消息传回视图。 如documentation

所述
    if ($validator->fails())
    {
        return redirect('dashboard')->withErrors($validator);
    }