有不同的模块,它们都在操作中返回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 ModelViewModel的一个实例。
没有错误,只是一个空输出,甚至可以看到通知警告。因此,它不会抛出任何异常,错误,警告,通知等。
再次提醒一下,它只发生在一个特定的模块中,但这个模块实际上与其他模块没有什么不同。
我不是ZF专家,我正在处理别人的代码,所以请给我一个起点,以便能够找到这个问题。
提前感谢。
编辑:我有一个额外的信息;
如果我使用JsonModel而不是ViewModel,你可能知道,JsonModel扩展了ViewModel。
既然你没有张贴你的控制器动作正确,这是猜测我可以做你的问题。
在Zend框架2中有各种类型的控制器,您将在模块中扩展您的控制器。
例如,如果您从AbstractActionController扩展您的控制器,您的视图将正确返回。
所以这里的问题是你的其他模块有控制器扩展AbstractActionController。这个没有正确返回视图的模块可能没有扩展视图。相反,它可能会扩展其他控制器,如restfulcontrollers
你还应该检查模块的module.php文件,检查你是否有任何策略eg json策略应用于这个模块的bootstrap从module.config.php。
。
return array(
'view_manager' => array(
'strategies' => array(
'ViewJsonStrategy',
),
),
)
您还检查您的模块.config.php文件是否有适当的规格为您的视图管理器到您的模板。
。
'view_manager' => array(
'template_path_stack' => array(
'album' => __DIR__ . '/../view',
),
),
希望这对你有帮助。