2013-03-07 57 views
0

有不同的模块,并且它们都会在操作中返回ViewModel。但不知何故,ViewModel在其中一个模块中有点怪异。Zend Framework 2 ViewModel在某些模块中返回一个空输出

我在说;

$view = new ViewModel(array('data' => $someContent)); 
$view->setTemplate('a valid path to template'); 

return $view; 

并获得空白页面。

如果我把一个出口()语句在相关模板的最后像

<!DOCTYPE html> 
<html> 
    ... 
</html> 
<?php exit(); ?> 

因为脚本结束有,但我失去了,否则的输出,我可以得到预期的输出。

如果我说* var_dump($ view)*,我可以看到$ view是一个实例Zend \ View \ Model \ ViewModel

没有错误,只是一个空的输出,甚至可以看到通知警告。因此,它不会抛出任何异常,错误,警告,通知等。

要再次提醒,它只发生在特定的模块中,但该模块与其他模块没有什么不同。

我不是一个ZF大师,我正在处理别人的代码,所以请给我一个出发点来找到问题。

在此先感谢。

编辑:我有一个额外的信息;

它工作,如果我使用JsonModel而不是ViewModel,并且您可能知道,JsonModel扩展了ViewModel。

+0

作为退出()帮助,输出缓冲想到。如果它发生在特定的模块上,那么该模块可能会对输出缓冲做些什么? – hakre 2013-03-07 12:27:57

+0

你是对的,但我找不到任何与缓冲或任何影响ViewModel相关的东西。 – Tim 2013-03-07 12:29:44

+0

在php.ini中将警告和通知提升到最高级别,然后启用错误日志并通过跟踪日志查找警告/通知/错误。 – hakre 2013-03-07 12:36:30

回答

1

由于您尚未正确发布您的控制器操作,因此这是我可以对您的问题进行的猜测。

在Zend框架2中有各种类型的控制器,您将从中扩展您的控制器在您的模块中。

例如,如果您从AbstractActionController扩展您的控制器,您的视图将被正确返回。

所以这里的问题是你的其他模块有控制器扩展AbstractActionController。这个没有正确返回视图的模块可能不会扩展它。相反,它可能会扩展其他控制器,如restfulcontrollers

您还应该检查module.php文件中的模块,以检查是否有任何策略,例如json策略应用于引导module.config.php中的该模块。

例如。

return array(
    'view_manager' => array(
     'strategies' => array(
      'ViewJsonStrategy', 
     ), 
    ), 
) 

此外,您还检查您的module.config.php文件是否有您的视图管理器到您的模板正确的规范。

例如。

'view_manager' => array(
     'template_path_stack' => array(
      'album' => __DIR__ . '/../view', 
     ), 
    ), 

希望这会有所帮助。

+0

我知道我的帖子没有太多的细节,但我不能提供任何,因为该项目和准备虚拟的会消耗太多的时间,我实际上没有。我很抱歉。 但你的文章真的帮了我,发现了问题。 首先,模块没有布局定义。其次,该模块的布局文件是空的。我只是提出一个指令来打印内容,瞧。 我相信选择你的信息作为答案没有任何坏处。 非常感谢。 – Tim 2013-03-09 02:56:26