[英]Zend Framework: headTitle()->append() issue
有没有人遇到这个问题......
在我的layout.phtml中,我有:
<head>
<?= $this->headTitle('Control Application - ') ?>
</head>
然后在index.phtml我有:
<? $this->headTitle()->append('Client List'); ?>
我希望,当我进行索引操作时,标题应该是“控制应用程序 - 客户端列表”,而是我有“客户端列表控制应用程序 - ”
到底是怎么回事? 我怎样才能解决这个问题?
headTitle()的默认行为是附加到堆栈。 在layout.phtml中调用headTitle()之前,您的堆栈是:
客户端列表
然后,使用第一个参数调用headTitle而没有第二个参数( 这使其默认为APPEND ),从而产生以下堆栈:
ClientListControl应用程序 -
解决方案,在layout.phtml中:
<?php
$this->headTitle()->prepend('Control Application -');
echo $this->headTitle();
?>
此外,您可以在布局中使用setPrefix方法:
<head>
<?= $this->headTitle()->setPrefix('Control Application') ?>
</head>
在您的controllers / actions / etc中使用标准append / prepend:
<?php
$this->headTitle()->setSeparator(' - ');
$this->headTitle()->append('Client List');
?>
我实际上并没有使用headTitle,而是使用ZF,我快速查看了邮件列表,这可能会解决问题:
<head>
<?= $this->headTitle('Control Application') ?>
</head>
然后:
<?php
$this->headTitle()->setSeparator(' - ');
$this->headTitle()->prepend('Client List');
?>
发生这种情况是因为布局是要执行的最后一个脚本。 所以你实际上在标题集之前进行追加,这样就没有什么可以追加了。 在Controller中设置主标题(Control Application)。 例如,我总是在initPlugin的predispatch操作中执行它,以便它在任何其他Controller Action之前执行,并且我可以随意附加或前置。
要使用这样的插件,只需定义一个新的类扩展Zend_Controller_Plugin_Abstract并定义一个函数preDispatch( Zend_Controller_Request_Abstract $ request),您可以在其中放置所有常见的整个站点代码,并注册插件只需将其放入controllerFront你的bootstrap:$ controller-> registerPlugin(new InitPlugin());
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.