我已经阅读了很多关于此的讨论,但没有运气。
我有一个控制器:
function get_list() {
$data['promoname'] = $this->Default_model->get_promo($this->input->post('year'));
$this->output->cache(10);
// Render view
$this->layout->render(get_platform().'/promo/promo_view', $data);
}
And in my Default_model:
function get_promo($year = NULL) {
$this->db->cache_on();
//query here
}
首次加载页面时,数据显示完美。但是当我再次尝试加载它以检查它是否被缓存时,它什么也没显示,一个空白的白页。错误报告已启用。
在application/cache
下创建了一个文件,这意味着没有权限问题。但是创建的文件包含'1357184142TS --->'。
试图删除$ this-> db-> cache_on(),但行为仍然相同。什么似乎是问题?
答案 0 :(得分:0)
检查您的视图文件以查看是否遗漏了任何标记或中间是否有任何值被中断。
答案 1 :(得分:0)
正如文档https://ellislab.com/codeigniter/user-guide/general/caching.html所说:
由于CodeIgniter存储输出内容的方式,缓存仅在您为具有视图的控制器生成显示时才有效。
所以你必须打电话:
$this->load->view(get_platform().'/promo/promo_view', $data)
而不是
$this->layout->render(get_platform().'/promo/promo_view', $data);
答案 2 :(得分:-1)
我遇到了同样的问题。我没有正确测试它。我认为空白页是由使用嵌套查询的代码中的($this->db->last_query())
引起的。
尝试将$db['default']['db_debug'] = TRUE;
更改为false
。如果其他系统查询未运行,它可能会解决问题。