拉拉维尔误差变量



如果满足条件,如何将自定义值转发到错误变量?我正在对用户创建进行验证,除了使用现有电子邮件(在数据库中是唯一的)之外,一切都可以正常工作,然后导致应用程序崩溃。

如果可以在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变量?

使用

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

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

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

你可以这样做:

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');
}

最新更新