繁体   English   中英

Zend Framework 2 ViewModel在某些模块中返回空输出

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM