gpt4 book ai didi

php - Zend Framework PHP 中页面的基本流程

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:36:52 25 4
gpt4 key购买 nike

Zend 如何将 $this->layout()->content 与 scripts/index/index.phtml 链接起来?

我想我没有理解页面应该如何粘在一起的基础知识。我看过 zend 网站上的快速入门,但它太简单了。

最佳答案

正如 Tomáš Fejfar 所解释的,这就是 $this->layout()->content 的工作原理。然而有趣的是,“内容”不仅仅是布局中的一个变量。事实上,“content”是名为“Zend_Layout”的 View 占位符中的一个键。因此,以下代码片段等同于 layout.phtml 中的 echo $this->layout()->content:

 $placeHolder = Zend_View_Helper_Placeholder_Registry::getRegistry()->getContainer('Zend_Layout');
echo $placeHolder['content'];

// or

echo $this->placeholder('Zend_Layout');

// or

echo $this->placeholder('Zend_Layout')->content;

这可能非常有用。我的意思是您可以在 layout.phtml 中定义一些地方,这些地方将显示来自“Zend_Layout”占位符的自定义键的值。例如,假设您想要一个 layout.phtml 并且您希望能够修改页脚中的文本。您可以通过定义 layout.phtml 来做到这一点,它将在页脚中包含以下内容:

<div id="footer">
<?php echo $this->layout()->myFooterText; ?>
</div>

您可以为此页脚设置一个默认值,例如你的 Bootstrap.php。但是,如果您愿意,可以按如下方式在您的操作中修改此文本;

$this->view->placeholder('Zend_Layout')->myFooterText = 'Some text only for this action';

这就是我想添加的内容。当然可以想到其他场景,因为 $this->view->placeholder('Zend_Layout')Zend_View_Helper_Placeholder_Container 的一个实例,所以你可以用 Zend_Layout 做其他事情占位符。

编辑:关键“内容”是默认名称。您可以使用 Zend_Layout 的 setContentKey 方法将其更改为其他内容,例如:

protected function _initSetNewLayoutContentKey() {

$layout = $this->bootstrap('layout')->getResource('layout');

// instead of 'content' use 'viewoutput'
$layout->setContentKey('viewoutput');
}

通过此更改,在您的 layout.phtml 中,您将使用 echo $this->layout()->viewoutput; 而不是 echo $this->layout()->content ;

关于php - Zend Framework PHP 中页面的基本流程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5046945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com