【发布时间】:2015-02-08 15:26:10
【问题描述】:
我需要在我所在的视图中显示用户友好的错误消息,并想知道什么是最佳解决方案。我可以使用错误控制器显示和错误页面,但这不是我想要实现的。我需要处理任何模型中的所有自定义错误消息,并在您所在的视图中显示错误。例如:
我在“用户”控制器中。创建新用户时,PHP 模型代码检查是否存在相同的用户名,如果存在我想在视图中显示一条消息,或者在标题中可能有类似的内容:echo $error; 显示我设置为显示的任何错误消息如果发生,来自任何模型。
模型中的示例错误消息:
if ($p0 > 0) {
$IsValid = false;
log::LOG_USER_ERROR("This user already exist!", $username);
exit("This user already exist! </br> ");
}
此代码成功地将错误写入日志文件,但是如何在我所在的同一视图中显示错误消息? exit() 在空白页中显示消息。我需要在相同的视图和设计中将其显示为红色块。
【问题讨论】:
-
不要从模型中调用静态方法,测试会很痛苦。并且绝对不要退出那里,这将使测试变得更加困难。可以返回错误条件,然后在控制器中对其进行处理。听起来您可以在布局中呈现它(包含所有页面模板的通用模板)。
-
是的,这是正确的方法,只是无法弄清楚如何实现它。我确实尝试在模型中返回 false,然后以某种方式在控制器中返回 false。从控制器很容易在视图中显示消息,但无法弄清楚。有没有例子?谢谢
-
目前这有点宽泛,如果不知道整个框架的结构很难回答。我认为你最好的选择是看一个流行的类似 MVC 的框架并通过他们的例子来工作。然后,您将能够将它们的结构应用于您自己的框架。也许是 Laravel、Slim 或 Symfony?
标签: php model-view-controller error-handling