在缓存的视图上不添加面包屑

时间:2013-02-11 23:52:14

标签: php cakephp caching breadcrumbs cakephp-2.3

在我的布局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 - 块中,它可以正常工作(即在每个页面渲染时调用)。

1 个答案:

答案 0 :(得分:2)

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

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

只要他们被缓存,只有作品addCrumbgetCrumbs之前被称为

这只是部分回答了我的问题。由于getCrumbs用于我的布局.ctp,因此无法更改订单。

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