8

私のレイアウトdefault.ctpで私は持っています

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

私が持っているrules.cptと呼ばれるビューの中に

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

(キャッシュされていない)ビューを最初に開くと、ブレッドクラムが希望どおりにレンダリングされます。追加の(キャッシュされた)レンダリングごとに、Home表示されるのは1つだけです。

コントローラからキャッシングを削除する場合

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

すべてが機能します。

なぜaddCrumb()呼ばれないのですか?<?php echo time(); ?>動作する同じブロックに追加することをテストしましたnocache(つまり、すべてのページレンダリングで呼び出されます)。

4

1 に答える 1

2

問題の原因は、行われた呼び出しの順序のようです。

私の最初のバージョンでは、ビューがキャッシュされていない限り、正常に機能<?php echo $this->Html->getCrumbs(' / ', 'Home'); ?>する前に呼び出されました。<?php $this->Html->addCrumb('Rules', '/rules'); ?>

それらがキャッシュされるとすぐに、作品だけがaddCrumbに呼び出されます。 getCrumbs

これは私の質問に部分的にしか答えません。getCrumbs私のレイアウトで使用されているため.ctp、順序を変更することはできません。

私はこれを私の質問のメモとしてではなく回答として投稿したので、私がすでに質問に書いたものの恩恵を誰も得られません;)残りの問題の解決策を提供できるか、これがCakeのバグであるかどうかを知ることができれば、私はあなたに賞金を提供させていただきます。

于 2013-02-17T21:34:30.677 に答える