Zend中的Action View Helper - 可以解决吗?

gna*_*arf 10 php model-view-controller zend-framework zend-form

我正在构建一个我希望用作"标签式浏览"功能的界面.这些选项卡中的每一个都已编写为操作,选项卡式界面可作为各个选项卡的链接.我决定尝试为这个控制器编写"索引"页面 - 将所有选项卡的内容放入隐藏的div并使用jQuery在它们之间交换,但是一旦我开始使用动作视图助手 - 我遇到了很多人说这是不好的做法.(见本文)

其中一些操作会构建表单 - 从模型中获取一些数据等以显示.我希望每个动作都能继续自行运行(一些解析形式).

浏览到/ item应该为您提供选项卡式菜单,以及隐藏标记中所有div的内容 - 其中/ item/tab2是特定操作(例如表单提交).

另一个复杂/警告 - 如果用户无权访问该"选项卡",某些操作将抛出Access Exceptions.我不想两次将访问检查构建到系统中(因此显示一个包含空内容的选项卡).

我只想弄清楚处理这类事情的最佳做法是什么,我认为动作助手可能就是这样.如果我尝试使用View Helpers - 我开始想知道这是否是组装Zend_Form的正确位置.

有没有人对"正确"的方法有任何建议,不使用Zend_View_Helper_Action

小智 7

正如我在你引用的文章中所说,解决动作视图助手的正确方法是创建直接访问模型以获取所需数据的部分.这可以通过一个视图助手(你自己做这个;))如果这会在你的视图中涉及很多逻辑.

动作视图助手不仅仅受到性能问题的困扰,而且还会产生可怕的调试噩梦,如果你需要它,那么你的应用程序可能不会跟随MVC,因此,你正在使用控制器来重用,而不是模型,这是模式的意图.

您可以使用视图对象的渲染或部分方法在布局或当前操作视图中渲染部分.

如果您有多个操作来处​​理选项卡中的多个可能的帖子,那么您应该设置所有这些操作以呈现相同的视图脚本,然后将直接从模型呈现所有带有数据的选项卡.