У меня есть некоторые проблемы с сайтом, который работал правильно, пока я не реализовал полное кэширование страниц в CakePHP.
Я следовал инструкциям в Руководстве, и мой $ session-> flash в блоке без кеширования выглядит так:
<cake:nocache>
<?
if($session->check('Message.flash')){
$session->flash();
}
?>
</cake:nocache>
Однако всякий раз, когда контроллер устанавливает флэш-сообщение и перенаправляет на кэшированную страницу, страница загружается в тег, а затем выдает ошибку:
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
Если я затем перехожу на страницу, созданную другим контроллером, отображается правильное (отложенное) сообщение и страница загружается правильно.
Я отправил это в CakePHP trac как Билет 282