Кэширование запросов в CodeIgniter - PullRequest
0 голосов
/ 15 ноября 2011

Я хочу кешировать запрос в CodeIgniter. Для этого теста я создал контроллер, названный show.php:

class Show extends CI_Controller{
public function __construct() 
{
    parent::__construct();
    $this->load->model('rejaal_show');
}

public function _remap($method = '',$param = array())
{
    $method = intval($method);
    $this->output->cache(5);
    var_dump ($this->rejaal_show->temp($method));
}
}

И модель, которую я назвал rejaal_show.php:

public function temp($id)
{
    $this->db->cache_on();
    $this->db->where('id',$id);
    $query = $this->db->get('system_store_table');
    return $query->result();
}

Когда я звоню http://localhost/rejaal/show/1 в первый раз, он показывает результат, но когда я звоню во второй раз, он ничего не показывает.

Я должен удалить файл кэша запросов, чтобы показать его снова? Как мне решить эту проблему?

С особой благодарностью за внимание.

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Можете ли вы подтвердить, что вы указали $db['default']['cachedir'] путь к папке для записи в application/config/database.php и что при первом запуске запроса там создается файл кэша?

Единственная другая причинаЯ могу подумать, потому что это сбой, вы используете переопределение _remap.Я не использовал db-кеширование с использованием _remap, но знаю, что CodeIgniter создает папку с именем controller + action в вашей папке кеша, и может быть не очень хорошо обрабатываться при использовании remap?Кто-то поправит меня, если я ошибаюсь.

0 голосов
/ 15 ноября 2011

На странице руководства пользователя CodeIgniter для Кэширование веб-страниц указано:

Из-за того, что CodeIgniter хранит содержимое для вывода, кэширование будет работать только в том случае, есливы создаете дисплей для вашего контроллера с представлением .

Сделайте ваш var_dump внутри представления.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...