我正在使用CakePHP 2.6
当我重定向回发出请求的同一视图时,我遇到了问题。视图似乎已缓存,因此在再次刷新页面之前不会显示请求期间所做的任何更改。
这意味着:
- 用户看不到刚刚所做的更改。
- 闪存消息显示在以下视图中(这是错误的)。
为什么会这样?
我检查过的事情:
- 我的 PHP 环境已关闭缓存
- 我的 CakePHP 配置是默认的(见下文)。
- 缓存应该被禁用,因为我处于调试模式:
Configure::write('debug', 2);
- 我正在启用和未启用浏览器缓存的多个浏览器中进行测试。
Configure::write('Session', array(
'defaults' => 'php'
));
代表性示例:
//Inside ListingsController...
$this->Listing->id = $id;
if ($this->Listing->save($listing)) {
$this->Flash->success(__('"%s" is now active.', $listing['Listing']['title']));
} else {
$this->Flash->error(__('Problem activating'));
}
//this is the original view...
$this->redirect( array('controller'=>'listings', 'action'=>'mylistings') );
我有完全相同的问题。你找到这一切的原因了吗?当我试图解决问题时,我在响应标题中看到了这一点
Age 0
Connection keep-alive
Date Tue, 21 Apr 2015 08:47:21 GMT
Server ATS/3.2.4
所有带有304 Not Modified Status
的文件都有 Apache 流量服务器 (ATS)(来自我的 LAN),这让我认为它是导致所有这些行为的文件;我按照此处的说明强制非缓存,我没有更多的问题。
试试这个,它会重定向到引用
$this->Listing->id = $id;
if ($this->Listing->save($listing)) {
$this->Flash->success(__('"%s" is now active.', $listing['Listing']['title']));
// Redirect the referer
$this->redirect(
$this->referer()
);
} else {
$this->Flash->error(__('Problem activating'));
}
谢谢。。!