-1

我有一个存储过程、一个控制器和一个模型

我应该在我的过程或模型中在哪里进行数据库错误检查[没有行返回、表的主键冲突、指定的值无效等?]?我应该从哪里向用户显示消息[更新成功,无法执行语句等]?

更好的做法是什么?

4

3 回答 3

4

错误检查应该发生在模型层。

具体来说,在数据映射器或其他处理数据抽象的结构中。如果您使用 PDO,SQL 错误会引发异常,这是在存储抽象级别处理的。这是通过将错误状态分配给您当时存储或填充的域对象来完成的。

控制器存在于完全不同的层:表示层。它不应该意识到由模型层处理的领域业务逻辑的内部问题。这将导致抽象泄漏

视图在收集要显示的信息时,首先应该请求它使用的服务返回状态。如果服务通知视图现有的错误状态,视图请求更详细的信息,并决定如何对错误做出反应以及使用哪些组模板来可视化错误状态。

于 2012-08-30T10:35:20.830 回答
1

是的,所有的错误消息和显示项都应该在 View 中处理,因为数据库错误检查可以在模型中完成。

于 2012-08-30T05:19:02.013 回答
0

在我看来,数据库错误检查应该进入模型,显示(一切)将进入“视图”层。你可以在这里找到一篇关于制作 MVC 框架的好文章:

http://anantgarg.com/2009/03/13/write-your-own-php-mvc-framework-part-1/

于 2012-08-30T05:14:51.420 回答