当创建一个用于编辑数据库记录的相当复杂的表单时,我正在加载控制器,将请求发送到模型以生成表单,然后从模型本身加载输出,而不是将表单发送为要插入到页面中的视图的$ string。
我一直想知道我们是否应该在模型或视图中创建表单(需要访问数据库甚至创建表单,因为它是动态的),如果它是在模型中创建的,我们是否应该创建它作为字符串并将其发送到视图。
我知道这里没有“完美”的答案,但我们正在努力实现标准化,以便在我们引入开发人员时,我们已经采用行业标准的方式(我们仍在学习)。使用Code Igniter框架。
答案 0 :(得分:8)
在我看来,这里有一个完美的答案:
模型处理事物的数据方面。显示模板以编辑模型中的数据是UI的责任,这是视图的责任。
换句话说,模型不应该呈现它自己的形式。 View应该这样做。
答案 1 :(得分:2)
不要通过确定View不应包含任何服务器端代码来限制您的应用程序。如果要将数组传递给View,则需要循环才能将此数据输出到浏览器。通过在Model中创建字符串并将其传递给View,您必须在Model中创建大量HTML,这是View的用途。我还没有遇到过这样的情况:我无法避免在表单中使用至少一点PHP,通常是将POST数组中的值添加到验证失败的输入表单中。
使用对你来说最干净,最明智的方法,不要打败自己,你正在弯曲规则 - 在这种情况下你不是。只要您的应用程序是安全的并且它使用干净,可读和可维护的代码,就可以使用它运行。