我试图找出将代码放在我访问数据库的最佳位置,并在select元素中填充选项的值。将此代码放入控制器似乎很笨拙。让表单了解数据库有什么缺点?
答案 0 :(得分:1)
让表单知道数据库的缺点是你会得到紧密耦合的组件 - Zend_Form和你上面的情况下的数据库访问层 - 而这两个组件必须没有任何共同之处。
想象一下可能出现的情况:
因此,最好的解决方案是使用一些特定于db的映射器类,它可以为您提供所需的数据。然后将此数据作为依赖项传递给表单。这样,您将从任何外层独立(可读维护,可测试)表单。
因此,您可以创建表单的对象,将数据源中的数据(无论是什么)传递给控制器。