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
equalsViewHelperManager
equalsViewHelperManager
equalsview\helper\manager
。请参阅并感谢您提供的有用信息:)