我有点失落。
我做了一个'主页',我想要一个页面使用。我在哪里声明它?
MainLayout.phtml
<html>
<head>
</head>
<body>
<?php echo $this->layout()->content; ?>
<div>
<ul>
<li><a href="#">Navigation</a></li>
<li><a href="#">Navigation</a></li>
<li><a href="#">Navigation</a></li>
<li><a href="#">Navigation</a></li>
<li><a href="#">Navigation</a></li>
</ul>
</div>
</body>
</html>
Index.phtml
<?php echo $this->doctype() ?>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<?php echo $this->headMeta() ?>
<meta name="language" content="en" />
<title><?php echo $this->escape($this->title) ?></title>
</head>
<body>
<h1>This is the first page I made.</h1>
</body>
</html>
我正在使用Zend框架。
答案 0 :(得分:3)
基本上,Pascal所说的是正确的:当使用Zend_Layout
时,它会将视图脚本的内容插入到主布局中
echo $this->layout()->content;
被调用。由于它是插入,因此您不包括整个HTML页面。在您的示例中,模板和布局都包含带有HTML,HEAD和BODY元素的完整页面,从而导致标记无效。
但是,由于在布局脚本之前处理了View脚本,您可以使用
从View脚本到layout helper设置布局$this->layout()->setLayout('foo');
您也可以从控制器
设置布局$this->_helper->layout->disableLayout();
当然,和ZF中的其他内容一样,它也可以从application.ini进行配置。 Zend_Layout
Quickstart是了解此组件的最佳开始。
答案 1 :(得分:1)
您没有在index.phtml
中嵌入layout.phtml
的任何文件中说明:Zend_Layout
组件会为您执行此操作:
content
属性中(当然,该属性的名称是可配置的) 但所有这些都必须配置 - 通常来自你的Bootstrap文件,或使用一些配置文件。
有关更多信息和详细说明以及示例,您可能需要查看: