Laravel错误变量

时间:2016-04-21 07:52:51

标签: php laravel

如果符合条件,如何将自定义值转发到错误变量?我正在对用户创建进行验证,一切正常,除非我使用现有的电子邮件(在数据库中是唯一的),然后崩溃应用程序。

如果可以在CreateUserRequest中完成,但我发现没有这样的事情会很棒,所以我在控制器中将其过滤掉。

返回JSON的工作原理如下:

public function store(CreateUserRequest $request)
{
    if (User::whereEmail($request['email'])->first()) {
       return Response::json([
                'error' => 'User with given e-mail already exists',
            ], 409);
    else {
        $user = User::create($request->all());
        return redirect('user');
        }
}

但在我看来,我有:

@if ($errors->has('email'))
<span class="help-block" style="color: red">
    <strong>
    {{ $errors->first('email') }}
    </strong>
</span>
@endif

所以我想知道是否有办法将消息从我的控制器转发到全局$error变量?

2 个答案:

答案 0 :(得分:2)

你可以这样做:

public function store(CreateUserRequest $request){

    if (User::whereEmail($request->email)->exists()) 
       return redirect()->back()->withErrors(['email' => 'User with given e-mail already exists']);

    $user = User::create($request->all());
    return redirect('user');

}

答案 1 :(得分:2)

使用

return Redirect::back()->withErrors(['email', 'The Message']);

但更好的方法是在CreateUserRequest验证中检查这一点。

// rules
'email' => 'required|unique:users',