[英]Zend Framework 2 ViewModel returns an empty output in some modules
有不同的模块,所有模块都在操作中返回ViewModel。 但是以某种方式,在其中一个模块中运行的ViewModel有点奇怪。
我正在说;
$view = new ViewModel(array('data' => $someContent));
$view->setTemplate('a valid path to template');
return $view;
并获得一个空白页。
如果我在相关模板的末尾放置exit()语句,例如
<!DOCTYPE html>
<html>
...
</html>
<?php exit(); ?>
我可以得到预期的输出,因为脚本到此结束,但否则丢失了输出。
如果我说* var_dump($ view)*,我可以看到$ view是Zend \\ View \\ Model \\ ViewModel的实例。
没有错误,只有空的输出,甚至可以看到注意警告。 因此,它不会引发任何异常,错误,警告,通知等。
再次提醒您,它只发生在特定的模块中,但实际上该模块与其他模块没有什么不同。
我不是ZF专家,我正在研究其他人的代码,因此请给我一个起点,以发现该问题。
提前致谢。
编辑:我有一个额外的信息;
如果我使用JsonModel代替ViewModel,并且您可能知道,JsonModel扩展了ViewModel,它将起作用。
由于您尚未正确发布控制器操作,因此我无法解决您的问题。
在Zend Framework 2中,您将使用各种类型的控制器来扩展模块中的控制器。
例如,如果您从AbstractActionController扩展控制器,则视图将正确返回。
所以这里的问题是您的其他模块具有扩展AbstractActionController的控制器。 此模块未正确返回您的视图,可能无法扩展它。 相反,它可能正在扩展其他控制器,例如restfulcontrollers
您还应该签入模块的module.php文件,以检查是否有任何策略(例如json策略)从module.config.php应用于该模块的引导程序。
例如。
return array(
'view_manager' => array(
'strategies' => array(
'ViewJsonStrategy',
),
),
)
另外,您还要检查module.config.php文件是否对模板的viewmanager有正确的规范。
例如。
'view_manager' => array(
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
),
),
希望这可以帮助 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.