【问题标题】:Caching controller action in CakePHP在 CakePHP 中缓存控制器动作
【发布时间】:2012-07-15 23:55:48
【问题描述】:

我需要缓存我的控制器操作之一。 我将“Cache”添加到我的 $helpers 变量中。 而我的动作是这样的:

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

我运行了这个动作,然后添加了一行echo。并再次运行。 但是结果变得不同了,尽管动作被缓存了。 如何调试此问题?

我检查了this

【问题讨论】:

    标签: cakephp caching controller cakephp-2.0


    【解决方案1】:

    app/Config/core.php 中取消注释Configure::write('Cache.check', true);

    我也不确定在动作本身中这样做是否会奏效。如果它没有将它作为类变量添加到您的控制器中。

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

    【讨论】:

    • 起初称这很有效,但我仍然有一些问题。你知道动作结果缓存在哪里吗?我在“app/tmp/cache”中找不到任何内容
    • 嗯,我想我错过了什么。我有行动A。工作时,actionA 调用“actionB/parameter1”,然后 actionA 解析输出并将数据传递给视图。当我将“actionB”添加到“$cacheAction”变量时,cakePHP 会缓存整个 actionA 页面并将其保存到 cache/views 文件夹。因此,当 actionA 调用“actionB/parameter2”时,会显示相同的输出。因为 cakephp 查找缓存文件夹并找到“actionA.php”并加载它。不能这样缓存吗?否则我将使用“元素”。我不喜欢使用它,因为在这种情况下我必须使用 requestAction。谢谢
    • 想提出一个新问题,以显示控制器中的代码?我不确定你在做什么。
    • 我最好打开另一个问题。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2018-02-07
    • 2013-08-19
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 2014-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多