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