簡體   English   中英

Zend Framework:headTitle() - > append()問題

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

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