0

Codeigniterデータベースキャッシュで奇妙な問題が発生しました。1つのクエリ結果をキャッシュするために使用しています。このために、関数の開始時に有効にし、直後に無効にします。

function checkAfter($lastCheck)
{
    $this->db->cache_on();
    $this->db->where('time >' , date('Y-m-d H:i:s', $lastCheck));
    $q = $this->db->get('actions');
    $r = $q->result();
    $this->db->cache_off();
    return (!empty($r)) ? $r : false;
}

データベースに何かが追加されたときに、特定のイベントのキャッシュを削除する必要があります。で正常に動作して$this->db->cache_delete_all();いますが、ユーザーガイドで説明されているように特定のメソッドキャッシュを削除しようとすると、何も実行されません。

ここで何が問題になるのでしょうか?

両方のメソッドが同じモデルで呼び出されます。また、削除する前にキャッシュを有効にしようとしましたが、それでも何もしませんでした。

編集

メインコントローラーにメソッドcheckEventsがあり、モデルのcheckAfterメソッドを呼び出してキャッシュを操作するとします。CIキャッシュエンジンは、キャッシュされたデータが保存されているキャッシュされたフォルダーの下にmain+checkEventsというフォルダーを作成します。$this->db->cache_delete('main', 'checkEvents'); そのため、そのモデルのlogEventメソッド(新しいイベントを保存する)を呼び出して削除しようとしてい ます。

4

0 に答える 0