在 Zend Framework 的控制器中使用视图助手
-
18-09-2019 - |
题
我有一个使用 AJAX 调用的控制器(发送 JSON 数据),所以我不使用视图。
我需要使用个人 查看助手 格式化我的数据,但是 在我的控制器中.
那可能吗 ?
或者也许我是 做错了 (也许我应该有一个视图,但是如何使用 JSON)?
解决方案
可以从所述控制器通过
访问任何视图助手$this->view->helpername(/*params*/);
// or
$helper = $this->view->getHelper('helpername');
// or
$broker = Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer');
$broker->getView()->helpername(/*params*/);
请参阅 Zend的:如何在控制器使用自定义函数从一个视图助手
不过,你可能是正确的,你这样做是错误的(搞笑PIC BTW 的),但我真的不能从你的问题告诉我们。请完善它,为什么你需要调用视图助手,什么是应该的格式。
其他提示
Zend_Controller_Front::getInstance()->getParam('bootstrap')->getResource('view');
只要确保返回的观点是你想要的视图。因为下了线,该视图可能会被覆盖,并在控制器上你有一个巴掌新的看法。
和你设置上的动作助手和...控制器在踢之前认为所有这些价值观?所有随风而逝!
所以检验,假设在此之前,如果你得到一个视图的资源。真的是你所期望的相同的观点的资源,所有的瓦尔仍然存在。
您可能会很惊讶,因为我是!
您可以创建一个助手的一个实例。这将在控制器,模型工作,无论你需要的助手。
例如
// create Instance
$serverUrl_helper = new Zend_View_Helper_ServerUrl();
// get the ServerUrl
$serverUrl = $serverUrl_helper->serverUrl();
另一种方法是使用 ContextSwitch 或 AjaxContext 操作助手. 。这允许您使用视图脚本,然后您可以通过标准方式调用视图帮助程序。
只要使用动作助手,许多视图助手的可作为动作助手太
或者直接通过使用Zend_Date
或sprintf
。
不隶属于 StackOverflow