所以我在Laravel 5应用程序中进行错误处理,特别是前端部分,用户会看到发生了一些错误。
我有一个简单的错误显示页面的想法,它会收到错误并在浏览器中显示给用户。 (可能是一个带有错误代码的变量,另一个带有描述的变量)
所以,也许一个例子就是创建一个函数
public function displayErrors($errors){
return view('auth.activationpending')->with('errors', $errors);
}
然后视图会将其显示给用户。
由于这是任何网站都很常见的东西,我想知道laravel库中是否有类似的内容?或者也许是一种更好的方法。我担心的是,我可能无法将每个错误默认重定向到此功能/页面。
对此有何想法?
答案 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中默认实现。