Model view controller zend框架理论和mvc模式:模型和表单之间的数据连接应该是什么样的层?
我正在学习Zend框架和学说 我想知道什么是连接表单和模型的最佳实践,反之亦然 在某些情况下,从form类中的模型加载数据非常方便。让我们说一个使用许多模型的非常独特的类 在其他情况下,在为表单准备数据的模型类中有方法是很方便的。假设它可以有一个方法返回为selectoptions元素准备的数组,所以这个方法对于许多表单都很有用 我希望保持一致性,并始终将这种逻辑保持在一个层中 我认为控制器不是合适的地方,因为我想保持它的清晰和简单 您的做法是什么来实现这一目标(将模型连接到表单) -Model view controller zend框架理论和mvc模式:模型和表单之间的数据连接应该是什么样的层?,model-view-controller,zend-framework,doctrine,Model View Controller,Zend Framework,Doctrine,我正在学习Zend框架和学说 我想知道什么是连接表单和模型的最佳实践,反之亦然 在某些情况下,从form类中的模型加载数据非常方便。让我们说一个使用许多模型的非常独特的类 在其他情况下,在为表单准备数据的模型类中有方法是很方便的。假设它可以有一个方法返回为selectoptions元素准备的数组,所以这个方法对于许多表单都很有用 我希望保持一致性,并始终将这种逻辑保持在一个层中 我认为控制器不是合适的地方,因为我想保持它的清晰和简单 您的做法是什么来实现这一目标(将模型连接到表单) - 我的结论
我的结论是,我应该为我所有的需要准备我的模型。如果我必须处理许多模型,我将有一个服务层(这是正确的术语吗?)来连接这些模型。因此,模型或服务将具有为表单添加数据的方法。它将能够接受来自表单值的数据。我认为控制器是连接模型和表单的最佳位置。如果要防止大量填充表单的代码,请在接受模型的表单上创建一个填充方法 如果您让模型和表单直接通信,那么在特定时间发生的事情将变得非常混乱。我会创建一些方便的方法,比如populate方法,让事情变得简短,但是所有的动作都应该从控制器开始,以保持事情的中心,防止“神奇行为”
我倾向于在控制器中映射表单和模型,但我听到过模型应该交付表单的观点。表单通常是个怪兽,因为它们包含视图元素。我喜欢你的答案,特别是因为它验证了我已经做过的事情;)