2012-07-15 70 views
0

我需要緩存一個控制器操作。 我在我的$ helpers變量中添加了「Cache」。 我的動作是這樣的:在CakePHP中緩存控制器操作

public function myAction($name) { 
    $this->cacheAction = '10 minutes'; 
    //some code 
    } 

我跑這個動作,然後加入echo一行。然後再次運行操作。 但結果變得不同,雖然行動被緩存。 我該如何調試這個問題?

我查了this

回答

1

取消註釋Configure::write('Cache.check', true);app/Config/core.php

而且我不知道,如果在動作本身將努力這樣做。如果它不會將此作爲類var添加到您的控制器中。

public $cacheAction = array(
    'myAction' => '10 minutes', 
); 
+0

起初稱這個作品,但我仍然有一些問題。你知道緩存動作結果的位置嗎?我找不到任何「app/tmp/cache」 – trante 2012-07-16 09:19:18

+0

它在tmp/cache/views – tigrang 2012-07-16 19:04:48

+0

嗯,我想我錯過了一些東西。我有actionA。在工作時,actionA調用「actionB/parameter1」,然後actionA解析該輸出並傳遞數據以查看。當我將「actionB」添加到「$ cacheAction」變量時,cakePHP會緩存整個actionA頁面並將其保存到cache/views文件夾。所以當actionA調用「actionB/parameter2」時,會顯示相同的輸出。因爲cakephp將緩存文件夾並找到「actionA.php」並加載它。以這種方式緩存是不可能的嗎?否則我會使用「元素」。我不喜歡使用它,因爲在這種情況下我必須使用requestAction。謝謝 – trante 2012-07-16 19:39:58