Laravel中的前端错误显示架构

时间:2015-05-17 00:21:07

标签: php laravel error-handling laravel-5

所以我在Laravel 5应用程序中进行错误处理,特别是前端部分,用户会看到发生了一些错误。

我有一个简单的错误显示页面的想法,它会收到错误并在浏览器中显示给用户。 (可能是一个带有错误代码的变量,另一个带有描述的变量)

所以,也许一个例子就是创建一个函数

public function displayErrors($errors){
    return view('auth.activationpending')->with('errors', $errors);
}

然后视图会将其显示给用户。

由于这是任何网站都很常见的东西,我想知道laravel库中是否有类似的内容?或者也许是一种更好的方法。我担心的是,我可能无法将每个错误默认重定向到此功能/页面。

对此有何想法?

2 个答案:

答案 0 :(得分:1)

假设您将以下内容添加到Controller方法中:

public function login(Request $request)
{
    $this->validate($request, [
        'email' => 'required|email',
        'password' => 'required'
    ]);

    //Do stuff
}

如果提交的表单中的字段不符合验证规则,您将被重定向回来并可以$errors->all()进行迭代,例如:

@foreach($errors->all() as $message)
    <div class="row">
        <div class="col-md-12">
            <div class="alert alert-dismissible alert-danger">
                <button type="button" class="close" data-dismiss="alert">×</button>
                <strong>{!! $message !!}</strong>
            </div>
        </div>
    </div>
@endforeach

这只是许多关于如何检索验证错误的例子,但应该让你开始。

答案 1 :(得分:1)

在我看来,在Web应用程序中有两种类型的错误需要不同的行为:

  • 用户输入错误:当用户输入未通过验证规则时,需要向用户显示这些错误。我通常会将用户重定向回他们输入数据的页面,并显示有关哪些数据错误的警告消息。我为此错误类型创建并打包,您可以查看我的一篇关于它的帖子here

  • 应用程序代码出错:在生产环境中,不应显示这些错误,这可能会显示有关您代码的一些敏感信息。最常见的方法是返回用户500错误页面并将错误详细信息记录到日志文件(或类似的东西)中,这在Laravel中默认实现。