从外部请求类处理错误

时间:2016-02-08 00:11:10

标签: laravel authentication

在我在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()方法?

感谢。

2 个答案:

答案 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