0

我已经阅读了很多关于此的讨论,但没有运气。

我有一个控制器:

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(),但行为仍然相同。似乎是什么问题?

4

3 回答 3

0

检查您的视图文件以查看是否有任何标签丢失或任何值在两者之间被中断。

于 2013-01-03T04:23:26.327 回答
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);

于 2015-07-30T14:00:46.717 回答
-1

我有同样的问题。我还没有正确测试它。我认为空白页是由于($this->db->last_query())在带有嵌套查询的代码中使用引起的。

尝试将 更改$db['default']['db_debug'] = TRUE;false。如果其他系统查询没有运行,它可能会解决问题。

于 2014-02-25T06:23:43.243 回答