【问题标题】:Zend Framework 2 - Make content page variable accessable in layout.phtmlZend Framework 2 - 在 layout.phtml 中使内容页面变量可访问
【发布时间】:2012-12-19 10:02:32
【问题描述】:

我想构建一个精美的标题容器 - 你永远猜不到 - 包含显示的每个页面的标题。

Django 中,您可以在传递给布局页面的每个视图中创建一个变量,或者在内容页面上定义一个填充内容的块。

这不是一个很好的解决方案,将我的花哨标题复制并粘贴到我的应用程序的每个页面上只是为了放入我的页面标题。我更愿意将标题容器放在我的布局页面中并使用我的 $title 变量在容器中设置标题。

我找到了静态变量here 的解决方案,但我需要一个动态变量,因为每个页面的标题都不同。

我的问题:有没有一种简单的方法可以将每个内容页面上的 $title 变量传递给我的 layout.phtml?

谢谢!

【问题讨论】:

    标签: variables zend-framework2 layout-page


    【解决方案1】:

    在 ZF 中有一个很好的视图 Helper 用于此任务。您可以在视图文件中定义要用于页面的标题。

    在您的查看页面中:

    //index.tmpl
    $this->headTitle("this is my unique title for this page");
    

    在您的布局文件中:

    <title><?php echo $this->headTitle() ?></title>
    

    更多信息请访问:http://framework.zend.com/manual/2.0/en/modules/zend.view.helpers.head-title.html

    【讨论】:

    • 我使用这个 headTitle() 函数,但 AFAIK 它用于标题标签,正如你所概述的那样。我希望一个普通的 div 成为我内容的标题,就像 &lt;h1&gt; 标签一样。因为我的标题不仅仅是

      的代码,我想把它放在布局的中心——如果可能的话。

    • 那么看看 ZF Placeholders。
    【解决方案2】:

    好的,如果您知道要寻找什么,答案就很简单了。使用placeholder helper

    //layout.phtml
    <?php $this->placeholder('foo')->set("Some text for later") ?>
    

    //myview.phtml
    <?php
       echo $this->placeholder('foo');
       // outputs "Some text for later"
    ?>
    

    【讨论】:

      猜你喜欢
      • 2014-09-07
      • 1970-01-01
      • 2015-03-09
      • 1970-01-01
      • 1970-01-01
      • 2011-07-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多