Zend Framework: headTitle()->append () - Problem
Hat jemand auf dieses problem stoßen...
In meinem layout.phtml habe ich:
<head>
<?= $this->headTitle('Control Application - ') ?>
</head>
dann im index.phtml habe ich:
<? $this->headTitle()->append('Client List'); ?>
Ich erwarte, dass, wenn ich an meine index-Aktion, der Titel sollte '- Steuerelement-Anwendung - Client-Liste', aber stattdessen habe ich 'Client ListControl Anwendung - '
Was ist Los? Wie kann ich dieses Problem beheben?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Standard-Verhalten des headTitle() ist zum Anhängen an den Stapel. Vor dem Aufruf von headTitle() im layout.phtml, dein stack ist:
Dann rufen Sie headTitle mit dem ersten argument und keine zweite argument (das macht es standardmäßig ANHÄNGEN), was in der folgenden stack:
Die Lösung, in der Gestaltung.phtml:
Darüber hinaus können Sie die setPrefix Methode in Ihrem layout als solche:
Und in Ihrem Controller/actions/etc verwenden Sie die standard-append/prepend:
Ich nicht wirklich headTitle, aber die Verwendung von ZF, und ich hatte einen kurzen Blick auf die mailing-Liste, das könnte das problem lösen:
Dann:
Dies geschieht, weil das layout ist das Letzte Skript ausgeführt werden. So dass Sie tatsächlich tun, den Anhängen, BEVOR Sie die Menge der Titel, so dass es nichts zum Anhängen an noch.
Die wichtigsten Titel (Control-Anwendung) in einem Controller. Zum Beispiel ich Mach es immer in der predispatch Aktion der initPlugin, so dass es ausführen, bevor andere Controller-Action, und ich kann es Anhängen oder voranstellen wird.
Verwenden, die ein solches plugin definieren eine neue Klasse, die sich Zend_Controller_Plugin_Abstract und definieren eine Funktion preDispatch(Zend_Controller_Request_Abstract $Anfrage), wo können Sie alle gemeinsam-auf-den-gesamten-Standort-code und registrieren Sie das plugin einfach in die controllerFront von der bootstrap Datei: $controller->registerPlugin(new InitPlugin());