Laravel 中显示架构的前端错误

Front-end error displaying architecture in Laravel

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

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

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

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

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

因为这对任何网站来说都是很常见的东西,我想知道 laravel 库中是否已经嵌入了类似的东西?或者也许是更好的方法。我担心默认情况下我可能无法将每个错误重定向到此 function/page.

对此有什么想法吗?

假设您将以下内容添加到您的控制器方法中:

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

这只是有关如何检索验证错误的众多示例中的一个,但应该可以帮助您入门。

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

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

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

    [=24 中默认实现的=]