簡體   English   中英

如何在Zend Framework2布局中檢索內容?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM