我正在使用CodeIgniter。將CodeIgniter活動記錄緩存限制爲僅限一個對象
比方說,我有一個當前用戶的模型和用戶列表的模型。在用戶列表模型中,我緩存WHERE語句,因爲如果我不這樣做,我必須在使用$ this-> db-> count_all_results(該函數重置活動記錄函數)之後再次應用它們。我當然也需要那些$ this-> db-> get('users')。
在用戶列表模式來過濾用戶的功能是這樣的:
public function onlyWomen()
{
$this->db->start_cache();
$this->db->where('gender', '1');
$this->db->stop_cache();
}
問題是,我也與當前用戶的模型工作。我懷疑我在用戶列表模型中設置的緩存還複製到當前用戶模型(我正在同時使用這兩個模型,因此無法在用當前用戶模型啓動時刷新緩存)。我認爲活動記錄緩存應該保留在被調用的對象中。
我該如何規避或解決這個問題?
(我的英文不是那麼糟糕,但在這個複雜的東西和我的組合也許不能完全理解的對象/班,我希望你明白我的問題^^)
我不這樣做,因爲我有3個可選的WHERE語句。要做出所有可能的組合,你必須製作8種獨立的方法(而按照我的方式做4種方法)。但是,謝謝你的答案..我認爲我現在可以做的最好的事情就是不要同時使用模型。 – Gersom
您可以使用可選參數確定要添加哪些子句。讓我寫一個例子。 – birderic
備用工作。我明白你的意思;) 但問題是,我將需要緩存功能無論如何,因爲在應用WHERE語句後,我做了一個count_all_results。這會重置活動記錄子句。但我仍然需要WHERE語句以及get() (並且因爲get()而不是count_all_results需要該限制,所以我確實需要在之前執行count_all_results) – Gersom