8

在我的布局 default.ctp 我有

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

在一个名为 rules.cpt 的视图中,我有

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

当第一次打开(未缓存的)视图时,面包屑会根据需要呈现。对于每一个额外的(缓存的)渲染,只会Home显示。

从控制器中删除缓存时

// 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 回答