我的动作助手只是在调用
时回显“ok”class Helper_MyActionHelper extends Zend_Controller_Action_Helper_Abstract {
public function direct(){
echo "ok";
}
}
当我在我的控制器中测试时,它工作正常并且回声确定。
$this->_helper->myActionHelper();
但是当我在表单中做同样的事情时,它根本不起作用。我试过了
$this->_helper->myActionHelper();
$this->_helper->myActionHelper;
我可以在表单中使用动作帮助器吗?有没有办法绕过它?
答案 0 :(得分:4)
您可以使用:
$helper = Zend_Controller_Action_HelperBroker::getStaticHelper('MyActionHelper');
echo $helper->direct();
请查看文档中的Helper Broker部分:http://framework.zend.com/manual/en/zend.controller.actionhelpers.html
答案 1 :(得分:3)
Action Helpers的更准确名称是Action-Controller帮助程序。它们意味着从动作控制器方法中调用。开箱即用,你不能从其他Zend对象中调用它们。
答案 2 :(得分:3)
动作助手并非旨在“帮助”应用程序的非动作元素。
您的$form
没有注册操作助手($this->_helper
)的概念,甚至没有配置帮助程序的上下文。
您可以在此处阅读并了解Zend Framework生命周期中插件的工作方式: http://www.eschrade.com/page/zend-framework-request-lifecycle-4b9a4288
如果您修改问题并告诉我们您要完成的任务,我们或许可以建议其他方法。
答案 3 :(得分:2)
您始终可以将Action Helper对象作为参数传递给表单。