处理laravel错误的最佳方法

时间:2014-07-19 13:28:08

标签: php laravel cartalyst-sentry

我被卡住了一点,我有一个小形式和认证系统 - 哨兵。

1)从Input获取数据并验证它。 没关系,我明白了,查看规则,设置messageBag

<?php
     $validation->getMessageBag()->setFormat(Config::get('project/config.errors_delimiters'));
?>

然后我返回页面withErrors方法。并打印validation错误。

2)例如,下一步将是登录用户。这意味着,我需要使用Sentry manual

但现在我遇到了一个问题:如何显示错误或存储错误。 我有:

  • 通过验证的错误消息
  • 通过Sentry的错误消息
  • 自定义错误
  • 成功消息
  • 信息消息

存储此邮件的最佳做法是哪种?如何将其发送到视图?以及如何在视图中解析它?另外如何设置分隔符样式?

当然,我可以创建大量的flash,会话和其他类型的数据,然后将其发送到视图中,但我认为这很荒谬。我认为有一种简单的方法可以帮助我。

1 个答案:

答案 0 :(得分:0)

非常好的问题。这就是我处理它的方式。

因为验证错误使用MessageBag,我所做的是

$messages = new MessageBag;

然后如果你遇到任何错误,你可以做

try {
    ...
} catch (Exception $e) {
    $messages->add("error", $e->getMessage());
}

如果您还有其他错误,则可以将其合并

$messages->merge($other_messages)

包括验证消息$ validation-&gt; messages()。

由于messagebag接受密钥,您可以按$messages->add('info', 'ok')

添加其他类型

然后在您的模板或控制器中,您可以通过

获取该类型的消息
$messages->get('error')

检查后

$messages->has('error')