在我的布局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
- 块中,它可以正常工作(即在每个页面渲染时调用)。
答案 0 :(得分:2)
问题来源似乎是正在进行的调用的顺序。
在我的初始版本<?php echo $this->Html->getCrumbs(' / ', 'Home'); ?>
之前调用<?php $this->Html->addCrumb('Rules', '/rules'); ?>
,只要视图没有被缓存,它就能正常工作。
只要他们被缓存,只有作品addCrumb
在 getCrumbs
之前被称为。
这只是部分回答了我的问题。由于getCrumbs
用于我的布局.ctp
,因此无法更改订单。
我发布这个作为答案,而不是作为我的问题的注释,所以没有人得到我已经在问题中写的东西的赏金;)如果你可以提供解决剩下的问题或知道这是否是Cake中的一个错误,我很高兴为您提供赏金。