假设我的模型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()
中通过循环结果并返回一个包含santizied和操作数据的数组来完成此操作。问题就在这里:假设我的数据库表中有一个日期字段,我希望以不同的方式格式化,具体取决于用户所在的页面。或者我需要运行htmlspecialchars()
上的一些数据。
我想到的第一个想法是清理和格式化我的视图中的数据,但它感觉不对。我应该在视图和模型之间有一些层来完成这项工作吗?在那种情况下,它会如何运作?或者应该以某种方式处理它?</ p>
答案 0 :(得分:2)
我强烈不同意布莱恩。
View是完全正确的选择。并且明确地只有 这样做。
只有视图知道数据的去向。如何转换数据完全取决于数据的去向 - HTML的具体方式(htmlspecialchars()),URL字符串(urlencode()),Javascript字符串(addslashes()或者最好json_encode()),一封电子邮件(quoted_printable_encode())....
假设我有一个日期字段......以不同的方式格式化我
这甚至不是一个消毒问题,这是一个展示问题 - 它仍然存在于视野范围内。
答案 1 :(得分:-1)
这很难,但我会在模型中提取数据,并在控制器中清理它。因此,如果数据库发生变化,您可以轻松修复查询
答案 2 :(得分:-1)
您还可以创建一个清理数据的视图助手,以便可以在所有视图文件中重复使用。