php – 在缓存视图中不添加面包屑

在我的布局default.ctp我有

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

在我称之为rules.cpt的视图中

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

首次打开(未缓存)视图时,面包屑将呈现为希望.每次附加(缓存)渲染时,只显示Home.

从Controller中删除缓存时

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

一切正常.

为什么不调用addCrumb()?我测试了添加<?php echo time(); ?>到同一个nocache-block工作(即在每个页面渲染时调用).

问题来源似乎是正在进行的调用的顺序.

在我的初始版本<?php echo $this-> Html-> getCrumbs(‘/’,’Home’); ?>在之前调用<?php $this-> Html-> addCrumb(‘Rules’,’/ rules’); ?>只要视图没有被缓存,什么工作正常.

只要它们只在缓存中工作,就会在getCrumbs之前调用addCrumb.

这部分回答了我的问题.因为在我的布局.ctp中使用了getCrumbs,所以无法更改顺序.

我发布这个作为答案,而不是作为我的问题的注释,所以没有人得到我已经在问题中写的东西的赏金;)如果你可以提供解决剩下的问题或知道这是否是蛋糕中的错误,我很高兴为您提供赏金.

翻译自:https://stackoverflow.com/questions/14823148/breadcrumbs-are-not-added-on-cached-views