[英]How to retrieve content in layout zend framework2?
我在zend框架中使用phtml文件。 現在,我正在使用.tpl文件。 我發現了如何使用html腳本等。 但是當我想使用php代碼時。 然后我正在使用:
<?php
echo "test";
echo $this->content;
?>
問題是它在layout.tpl文件中。 主要內容在其他模塊的index.tpl中。
而不是獲取索引文件的內容它只回顯“測試”。如何使其工作?
編輯:我也嘗試了{$this->content}
。
如果您正在使用Smarty模板引擎和SmartyModule ,那么您將不得不在視圖腳本中使用Smarty語法,因為Zend\\View\\Renderer\\PhpRenderer
將被Smarty Renderer(和Smarty模板引擎)覆蓋。 另外,如果您希望將布局與Smarty一起使用,請參見Smarty的模板繼承機制。 這是一個例子:
layout.tpl
<html>
<head>
<title>{block name=title}Default Page Title{/block}</title>
</head>
<body>
{block name=body}{/block}
</body>
</html>
mypage.tpl
{extends file="layout.tpl"}
{block name=title}My Page Title{/block}
{block name=body}My HTML Page Body goes here{/block}
否則,如果您使用的是PhpRenderer,即使將視圖腳本的文件擴展名更改為.tpl,它也不會“識別”任何模板語言,因為它只會include
視圖腳本的內容(請參閱第502-503行)。渲染器的源代碼 )。 因此,與任何include
,PHP代碼將立即執行並存儲在渲染器的$__content
屬性中。 這可能是您的echo
命令立即執行的原因。
因此,基本上,您將必須選擇渲染器(通過SmartyModule來選擇PhpRenderer或Smarty Renderer),然后遵守其內部工作原理(分別為PHP / HTML或Smarty語法(例如變量 ))。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.