我有一些视图助手可以在需要时添加 JavaScript 文件(例如,只有表单使用 CKEditor 等)。我的目录结构(简化为仅包含相关文件)是这样的:
application
--forms
--Project
AddIssue.php
--modules
--default
--views
--helpers
JQueryUI.php
Wysiwyg.php
--project
--controllers
ProjectController.php
--views
--scripts
--project
version.phtml
issueadd.phtml
我想做的事:
- 在视图中包含 CKEditor
project/project/issueadd
- 将 jQuery UI 包含在
project/project/version
当我在视图脚本中时,调用<?php $this->jQueryUI(); ?>
就像一个魅力,即使助手位于默认模块的助手目录中。但是,对于控制器和表单而言,情况并非如此。
在控制器ProjectController.php
中versionAction()
,我尝试调用:
$this->view->jQueryUI();
效果是个例外:
消息:在注册表中找不到名为“JQueryUI”的插件;使用的路径: Project_View_Helper_: C:/xampp/htdocs/bugraid/application/modules/project/views\helpers/ Zend_View_Helper_: Zend/View/Helper/
同样,在AddIssue.php
表格中,我尝试了这个:
$this->getView()->wysiwyg();
又出现了一个例外:
消息:在注册表中找不到名为“所见即所得”的插件;使用的路径: Project_View_Helper_: C:/xampp/htdocs/bugraid/application/modules/project/views\helpers/ Zend_View_Helper_: Zend/View/Helper/
显然,如果我的视图助手位于调用它们的模块/控制器的助手目录中,两者都可以工作,但是由于它们在许多模块中使用,我希望将它们放在默认模块的视图助手目录中.
所以,我的问题是:
- 如何从控制器和表单中访问这些视图助手?
- 有没有更简单的方法来解决这个问题(除了简单地在布局中包含所有 javascript 文件)?喜欢创建插件或动作助手?(我以前没有做过这些事情,所以我真的不知道,我只是从 ZF 开始我的冒险)。