我有一个通过AJAX调用的控制器(发送JSON数据),因此我不使用视图。
我需要在控制器中使用个人的视图助手来格式化我的数据。
这是否可行?
或者也许我做错了(也许我应该使用视图,但是如何使用JSON)?
我有一个通过AJAX调用的控制器(发送JSON数据),因此我不使用视图。
我需要在控制器中使用个人的视图助手来格式化我的数据。
这是否可行?
或者也许我做错了(也许我应该使用视图,但是如何使用JSON)?
你可以通过以下方式从控制器访问任何ViewHelper:
$this->view->helpername(/*params*/);
// or
$helper = $this->view->getHelper('helpername');
// or
$broker = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$broker->getView()->helpername(/*params*/);
请参见Zend:如何在控制器中使用视图助手中的自定义函数?。但是,您可能是正确的,您正在错误地做事情(顺便说一句,这很有趣),但是我无法从您的问题中真正得出结论。请进一步说明为什么需要调用视图助手以及它应该格式化什么。Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');
请确保返回的视图是您想要的视图。因为在后续流程中,视图可能会被覆盖,并且在控制器上您将拥有一个全新的视图。
在操作助手和类似工具上设置的所有值...在控制器启动之前?都随风而逝了!
因此,在假设您获得了视图资源之前,请进行测试以确保它确实是您期望的相同视图资源,以及所有变量仍然存在。
您可能会像我一样感到惊讶!
// create Instance
$serverUrl_helper = new Zend_View_Helper_ServerUrl();
// get the ServerUrl
$serverUrl = $serverUrl_helper->serverUrl();
只需使用操作助手,许多视图助手也可以作为操作助手使用。
或直接使用Zend_Date
或sprintf
。
Zend_View
或.phtml
视图脚本吗?$this->view->_helper;很明显...谁知道什么是“个人视图助手” :) - takeshin