Zend Form不能使用动作助手

时间:2010-11-26 00:08:47

标签: php zend-framework zend-form

我的动作助手只是在调用

时回显“ok”
class Helper_MyActionHelper extends Zend_Controller_Action_Helper_Abstract {
   public function direct(){
      echo "ok";
   }
}

当我在我的控制器中测试时,它工作正常并且回声确定。

$this->_helper->myActionHelper();

但是当我在表单中做同样的事情时,它根本不起作用。我试过了

$this->_helper->myActionHelper();
$this->_helper->myActionHelper;

我可以在表单中使用动作帮助器吗?有没有办法绕过它?

4 个答案:

答案 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对象作为参数传递给表单。