我回答了这个问题,因为我回到了相同的代码,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
(由默认响应段的布局自动分配)。因为我没有回应该段,所以它表现得好像被回显的文本被压制一样。
为了解决这个问题,我只需要确保我回应了内容段。
即
<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...
是你实际上包括MyClass的文件到您的应用程序,或实例MyClass的()作为应用程序中任何位置的对象? – Mark 2010-01-08 16:03:45
我在做两个。首先包括文件并刷新页面以查看是否输出文本,有时还将类实例化为对象。这实际上只是一些“调试文本”的例子。 – 2010-01-10 16:14:47
到目前为止所有的答复者 - 谢谢我会尝试这些建议 – 2010-01-10 16:17:22