我正在回答这个问题,因为我在 10 个月后回到了相同的代码,这让我再次感到困惑。
我处于默认模块、索引控制器和索引操作的上下文中。
我想回显一些简单的文本,以快速查看代码中发生了什么:
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
//home page
echo '<h1>hello world</h1>';
//set the special home page layout
$this->_helper->layout()->setLayout('home-page');
}
麻烦的是 - 回显的文本只是没有出现。
它适用于其他控制器,但不是这个。这让我快疯了。
现在 - 我已经解决了这个问题。
我为这个特定的控制动作使用了一个特殊的布局……一个“主页布局”。
在我的主页布局中,我没有呈现任何视图脚本。所有的内容和设计都在布局中。因为主页是一个特殊的、唯一的页面,所以没有必要分成两步视图。出于这个原因,我没有理由需要视图脚本。但是,我确实创建了一个 'views\scripts\index\index.phtml' 以防止 ZF 抱怨。然而,我没有在我的布局中渲染它——因为它不是必需的。
任何回显的输出都被捕获到layout()->content
(由“默认”响应段中的布局自动分配)。因为我没有回显该段,所以它表现得好像回显的文本被抑制了。
为了解决这个问题,我只需要确保我正在回显内容片段。
IE
<html>
<head>
...
</head>
<body>
... my home page html...
<?php echo $this->layout()->content ?>
... my home page html...
</body>
</html>
其中,我的调试文本也被回显......将呈现为:
... my home page html...
<h1>hello world</h1>
... my home page html...