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