缓存页面时Cakephp没有正确重定向

时间:2009-11-10 00:40:51

标签: cakephp caching redirect

我在使用CakePHP实现整页缓存之前,网站运行正常有问题。

我已遵循手册中的指导,并将我的$ session-> flash置于无缓存块中,如下所示:

<cake:nocache>
    <? 
    if($session->check('Message.flash')){
        $session->flash();
    } 
    ?>
</cake:nocache>

但是,只要控制器设置了Flash消息并重定向到缓存页面,页面就会向下加载到标记,然后给出错误:

Notice (8): Trying to get property of non-object
[CORE/cake/libs/view/helpers/session.php, line 145]

Fatal error: Call to undefined method stdClass::renderLayout() in
/home/decipherd/domains/example.com/public_html/beta/cake/libs/view/helpers/session.php
on line 14

如果我然后转到另一个控制器创建的页面,则会显示正确的(延迟的)消息并正确加载页面。

我现在已将此作为ticket 282

提交给CakePHP trac

3 个答案:

答案 0 :(得分:1)

听起来这可能是核心问题,你试过submitting a bug report吗?

答案 1 :(得分:1)

您确定Flash消息中有什么内容吗?尝试:

debug($session->read());

OR将其输出到debug.log

$this->log($session->read(), LOG_DEBUG); // this might not work in the view?

答案 2 :(得分:1)

查看错误消息,似乎SessionHelper由于某种原因不可用。

我不确定为什么,在您的应用程序中使用AuthComponent或SessionComponent时,通常会自动加载此帮助程序。

只是一个猜测,但可能值得将$helpers = array('Session', ...);放在问题控制器或AppController中进行测量。

您可以使用debug($this);

检查视图中可用的所有内容

最终,我会接受马特的建议并升级到最新的稳定版本。