Php 在ZF2中,如何使视图函数在控制器中运行

Php 在ZF2中,如何使视图函数在控制器中运行,php,zend-framework2,zend-view,zend-controller,Php,Zend Framework2,Zend View,Zend Controller,我希望视图文件的功能也能在控制器文件中运行 例如,我想让在视图文件中单独运行的$this->escapeHtml()通过类似$this->…->escapeHtml() 这可能吗?请提供帮助。您需要获取ViewHelperManager并提取EscapeHtml帮助程序。这是如何从控制器执行此操作的一个示例: $viewHelperManager = $this->getServiceLocator()->get('ViewHelperManager'); $escapeHtml =

我希望视图文件的功能也能在控制器文件中运行

例如,我想让在视图文件中单独运行的
$this->escapeHtml()
通过类似
$this->…->escapeHtml()


这可能吗?请提供帮助。

您需要获取
ViewHelperManager
并提取
EscapeHtml
帮助程序。这是如何从控制器执行此操作的一个示例:

$viewHelperManager = $this->getServiceLocator()->get('ViewHelperManager');
$escapeHtml = $viewHelperManager->get('escapeHtml'); // $escapeHtml can be called as function because of its __invoke method       
$escapedVal = $escapeHtml('string');

请注意,建议在视图脚本中转义并显示输出,而不是在控制器中。

尝试
$vhm=$sm->get('viewhelpermanager')
,然后
$escaper=$vhm->get('escapehtml')
最后
$myString=$escaper('string to escape'))
@Sam一如既往地简洁准确:)谢谢Sam和Stoyan Dimov。一个问题:是否存在任何区分大小写的问题?例如,Sam使用了“viewhelpermanager”(无大写),Stoyan使用了“viewhelpermanager”(camelcased)@Beniston no,内部所有名称都将规范化为小写,无特殊字符和字符串。因此:
ViewHelperManager
equals
ViewHelperManager
equals
ViewHelperManager
equals
view\helper\manager
。请参阅并感谢您提供的有用信息:)