2013-02-11 7 views
8

in meinem Layout default.ctp Ich habePaniermehl werden nicht im Cache gespeicherten Ansichten hinzugefügt

<!--nocache--> 
    <?php echo $this->Html->getCrumbs('/', 'Home'); ?> 
<!--/nocache--> 

Innerhalb einer Ansicht namens rules.cpt habe ich

<!--nocache--><?php $this->Html->addCrumb('Rules', '/rules'); ?><!--/nocache--> 

Wenn zuerst die (uncached) Ansicht öffnen, Die Brotkrümel werden wie gewünscht gerendert. Bei jedem weiteren (zwischengespeicherten) Rendering wird nur Home angezeigt.

Beim Entfernen des Caching von dem Controller-

// public $cacheAction = array('home' => 120, 'rules' => 36000); 

alles funktioniert.

Warum wird addCrumb() nicht aufgerufen? Ich testete, um <?php echo time(); ?> zu demselben nocache-Block hinzuzufügen, der funktioniert (d. H. Wird bei jedem Seiten-Rendering aufgerufen).

+1

Welche Version von Cakephp verwenden Sie? – MarcDefiant

+0

v2.3 - Danke für den Hinweis. Ich habe ein Label bezüglich der Versionsinformation – Gundon

+1

hinzugefügt, warum sollten die Krümel überhaupt außerhalb des Cachings liegen? Sie cachen die Site, daher sollten die Links der Site auch cachbar sein, da sie sich nicht ändern. – mark

Antwort

2

Die Quelle der Probleme scheint die Reihenfolge der Anrufe zu sein.

In meiner ursprünglichen Version <?php echo $this->Html->getCrumbs('/', 'Home'); ?> wurde vor <?php $this->Html->addCrumb('Rules', '/rules'); ?> aufgerufen, was gut funktioniert, solange die Ansichten nicht zwischengespeichert werden.

Sobald sie nur zwischengespeichert werden in arbeitet addCrumbgetCrumbs vor aufgerufen wird.

Dies beantwortet nur teilweise meine Frage. Da getCrumbs in meinen Layouts .ctp verwendet wird, ist es nicht möglich, die Reihenfolge zu ändern.

Ich postete dies als Antwort und nicht als Hinweis auf meine Frage, damit niemand das Kopfgeld für etwas bekommt, was ich bereits in der Frage geschrieben habe;) Wenn Sie eine Lösung für das verbleibende Problem bieten können oder wissen, ob dies der Fall ist ein Fehler in Cake, ich freue mich, Ihnen das Kopfgeld zu geben.

Verwandte Themen