【问题标题】:Cache and pagination with CakePHP 3.x使用 CakePHP 3.x 进行缓存和分页
【发布时间】:2015-04-30 15:45:03
【问题描述】:

Here 是如何使用 CakePHP 2.x 的分页缓存结果。

我还没有尝试过,但我相信同样的方法在 CakePHP 3.x 上也是有效的。

但是,由于 CakePHP 3.x 引入了几个使用缓存的新特性(例如,find() 方法采用了cache 选项),我想知道是否有更快的方法。

我看过书和 API,但没有提到这方面的任何特别之处。

一件事:here说明了

默认情况下,paginate() 方法将使用默认模型 控制器。您还可以传递 find 方法的结果查询:

也许是这个?我将find() 方法与cache 选项一起使用,然后将结果传递给paginate()?。

谢谢。

【问题讨论】:

    标签: cakephp caching cakephp-3.0


    【解决方案1】:

    我不建议缓存查询,尤其是分页结果。但是您的想法在理论上是正确的:

    $aKeyThatEncodesQueryStringAndConditions = ...;
    $this->paginate($this->Users->find()->cache($aKeyThatEncodesQueryStringAndConditions));
    

    【讨论】:

    • 谢谢@José,您对使用find() 更多“分页器”的性能有何看法?同时,我确认适用于 CakePHP 2.x(我的问题的第一个链接)的方法(当然!)也适用于 CakePHP 3.x。
    • 使用 find more "paginator" 是什么意思?
    • 对不起,因疲劳而出错。我想说:关于使用find() 方法并将结果查询传递给paginate() 方法的性能
    • 完全一样,如果你自己不将查询传递给paginate(),它会为你创建
    • 好的,在我们必须这样做之前:$this->paginate = ['limit' => 2];@José,对吗?
    猜你喜欢
    • 2016-01-02
    • 2016-12-29
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    • 1970-01-01
    • 2015-05-10
    • 2014-07-05
    • 2017-03-28
    相关资源
    最近更新 更多