PHP-显示选择列表的最佳实践

PHP-显示选择列表的最佳实践,php,model-view-controller,view,Php,Model View Controller,View,我在PHP项目中使用MVC概念(根据): 控制器-处理用户交互 视图-显示任何数据和/或字段 模型-处理所有业务逻辑,包括对数据访问对象的访问 前端控制器正在实例化MVC三元组。在这个结构中,我需要视图来显示从数据库填充的html选择选项列表,以及各种域对象需要从中获取数据的任何用户字段。我希望这是清楚的 我的问题是:视图无法要求数据库提供数据来填充选择选项列表,那么“传递”视图所需表单数据以正确填充所需选择选项列表的通用应用程序流是什么 注意:视图当前从模型中获取用户数据(在请求对象中),

我在PHP项目中使用MVC概念(根据):

  • 控制器-处理用户交互
  • 视图-显示任何数据和/或字段
  • 模型-处理所有业务逻辑,包括对数据访问对象的访问
前端控制器正在实例化MVC三元组。在这个结构中,我需要视图来显示从数据库填充的html选择选项列表,以及各种域对象需要从中获取数据的任何用户字段。我希望这是清楚的

我的问题是:视图无法要求数据库提供数据来填充选择选项列表,那么“传递”视图所需表单数据以正确填充所需选择选项列表的通用应用程序流是什么


注意:视图当前从模型中获取用户数据(在请求对象中),以及视图向模型请求的任何验证错误。

我不知道您使用的是哪个框架,它可以非常简单,只需在请求对象(控制器)中设置一个对象,在视图中读取此对象并显示所需内容即可。我通常会传递一个json对象,以防万一将来我想将我的模型/控制器/视图部署到不同的服务器上。您可以在模型中使用一个函数来选择所需的记录,并进行处理,以将它们放入数组或其他枚举列表中,然后您可以循环并生成HTML代码。您的视图可能无法直接与数据库对话,但您可以让它与您的模型对话(看起来您正在这样做),该模型可以处理到HTML创建点的处理。短语“视图无法向数据库请求数据”的意义是什么?在我看来,“类别”是与模型层中的
服务相关联的东西(可能您使用不同的名称)。视图将使用此服务获取类别列表,然后它将直接传递给其中一个模板或一个(然后将在其中一个模板中使用)。感谢大家的回复。我觉得@Crackertastic对我来说有最完整的答案。teresko提供了另一个我还没有实现的解决方案——在项目的后续迭代中,我将了解需要什么。Jianhong,目前的前端控制器只是收集用户数据并将其传递给模型。前端控制器确实知道MVC三元组,但不知道更多。我的空间坐标轴不是域对象,因此需要一些东西来触发在我的请求对象中包含一个域对象(我假设你的意思是在请求中设置一个域对象)。