2013-01-03 3 views
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(), но поведение остается прежним. В чем проблема?

ответ

0

Проверьте, есть ли у вас какие-либо теги, или какие-либо значения будут прерваны между ними.

+0

Я не был в состоянии добавить комментарии к этому вопросу. – Anusha

+0

Вам нужно 50 репутации, чтобы сделать это. Ответы, подобные этому, будут привлекать downvotes .. –

+0

Привет. Проверял мой взгляд, но все хорошо. Пытался удалить код, который включает кеширование, он функционирует так, как ожидалось. Когда пытались вернуть код для кеширования, страница все еще ничего не отображает – Annie

-1

У меня такая же проблема. Однако я его не тестировал. Я думаю, что пустая страница вызвана использованием ($this->db->last_query()) в коде с вложенными запросами.

Попробуйте изменить $db['default']['db_debug'] = TRUE; на false. Он может решить проблему, если другие системные запросы не запущены.

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);

Смежные вопросы