在我在Laravel(版本5.2)中创建的登录系统中,注册请求被传递到RegistrationRequest
类,其中包含如下验证逻辑:
public function rules() {
return [
"username" => "required|min:3|unique:users",
"password" => "required|min:6|confirmed",
"email" => "required|confirmed|email|unique:users",
];
}
然后传递给postRegistration
函数:
public function postRegistration(RegistrationRequest $request) {
$this->user->username = $request->input('username');
$this->user->mail = $request->input('email');
$this->user->password = password_hash($request->input('password'), PASSWORD_DEFAULT);
$this->user->save();
$this->auth->login($this->user);
return redirect('/dashboard');
}
所有类型的基本内容,现在我遇到的问题是,当我的用户名为2个字符时,我不知道如何显示错误。
我知道通常情况下,我
return redirect('/registration)->withInput()->withErrors(["errorHere" => "value"]);
但由于验证规则是外部的,我不知道如何将它们传递给视图。
我搜索了一些论坛和文档,但我找不到任何明确的内容。
有没有办法显示这些错误,最好使用withInput()
方法?
感谢。
答案 0 :(得分:2)
正如您从laravel的文档中看到的那样:
@if (count($errors) > 0)
<div class="alert alert-danger">
<ul>
@foreach ($errors->all() as $error)
<li>{{ $error }}</li>
@endforeach
</ul>
</div>
@endif
编辑:在我刷新页面之前,没有注意到作者自己回答了问题。
答案 1 :(得分:0)
所以在问这个问题后一分钟,一位朋友给我发了消息并告诉我,我可以做以下事情:
@if (count($errors))
<ul>
@foreach($errors->all() as $error)
<li>{ { $error } }</li>
@endforeach
</ul>
@endif