代码之家  ›  专栏  ›  技术社区  ›  Chris Williams

处理由一个控制器和操作生成的多个表单的正确方法?

  •  1
  • Chris Williams  · 技术社区  · 15 年前

    我正在使用Zend框架,我将修改一些控制器代码来做一些看起来应该已经有了模式的事情。

    当前,当我只有一个表单时,表单的操作将指向与生成页面的操作和控制器相同的操作和控制器。然后,控制器的操作函数验证表单,如果验证成功,则执行所需的操作。如果验证失败,则不会执行该操作,并且使用已验证的表单重新生成页面,因此错误消息会出现在正确的位置。

    我现在的情况是,我有一个操作/控制器,它创建两个表单,并向视图中显示一个项目列表。视图显示列表(例如,用户列表),并显示表单(添加用户和创建角色-就像一个例子一样)。正确的“Zend框架”方法是什么?每个窗体的操作是否应指向同一操作/控制器?如果是,如何处理验证?

    我的猜测(以及现在我将如何进行)是将两个表单都指向控制器,找出提交的表单,仅验证该表单,对验证执行操作,或者在失败时重新生成视图。

    2 回复  |  直到 15 年前
        1
  •  2
  •   TomáÅ¡ Fejfar    15 年前

    对。让每个表单具有不同的提交名称,并基于此对其进行验证。但是要注意,当您验证错误的表单时,错误消息会出现;)因此请仔细测试。

        2
  •  0
  •   Ivan Krechetov    15 年前

    您可以将两个表单提交到同一控制器的两个不同操作,并将列表生成提取到第三个方法,然后从indexaction和这两个表单提交操作调用它。