-1

假设我有一个User_model带有get_all_users()函数的模型:

Class User_model {
    function get_all_users() {
        $query = $this->db->query("SELECT * FROM users");
        return $query->result(); // Returns array with data
    }
}

我将在我的应用程序中的哪个位置清理数据以供输出?到目前为止,我已经get_all_users()通过循环遍历结果并返回一个包含经过处理和操作的数据的数组来完成此操作。问题就在这里:假设我的数据库表中有一个日期字段,我希望我根据用户所在的页面以不同的方式格式化。或者我有一些需要运行htmlspecialchars()的数据。

想到的第一个想法是在我的视图中清理和格式化数据,但感觉不对。我应该在视图和模型之间有某种层来完成这项工作吗?在那种情况下这将如何运作?还是应该以其他方式处理?

4

3 回答 3

2

强烈反对布莱恩。

View 正是这样做的正确位置。并且明确地是唯一这样做的地方。

只有视图知道数据的去向。转换数据的方式完全取决于数据的去向——以及您如何做的细节对于 HTML (htmlspecialchars())、URL 字符串 (urlencode())、Javascript 字符串 (addslashes() 或最好json_encode()) ,一封电子邮件 (quoted_printable_encode())....

假设我有一个日期字段......对我来说以不同的方式格式化

这甚至不是净化的问题,而是呈现的问题——这仍然存在于视图的领域。

于 2014-01-31T21:32:12.727 回答
-1

这很难,但我会在模型中提取数据,并在控制器中清理它。因此,如果数据库发生变化,您可以轻松修复查询

于 2014-01-31T21:31:24.503 回答
-1

您还可以创建一个清理数据的视图助手,以便可以在所有视图文件中重用它。

于 2014-01-31T21:58:13.160 回答