【问题标题】:Custom pagination with contains/joins and condition包含/连接和条件的自定义分页
【发布时间】:2011-07-02 08:22:09
【问题描述】:

我正在尝试根据来自间接相关模型的特定条件对名为 D 过滤结果的模型中的一些数据进行分页。我的模型看起来像:

D->C->B->A(其中每个->都是a所属)

我想对 D where A.client = ?的记录进行分页

这可能使用可包含的吗?这样做的首选方法是什么(使用模型 D 中的可包含导致查询每个分页项目,这似乎效率低下)?

【问题讨论】:

  • 是的。您可以使用 containsable 来限制和触发所有模型中的数据字段。在您的情况下,请照常使用它。您“包含”的所有字段都可用于分页、查找等。

标签: php cakephp pagination cakephp-1.3 containable


【解决方案1】:

是的,使用 Containable 可能有效;例如

// function in AController

$this->paginate = array(
    'conditions' => array('A.client' => 'foo'),
    'contain' => array(
        'B' => array(
            'C' => array(
                'D'
            )
        )
    )
);

CakePHP 将连接 A 到 B、B 到 C 和 C 到 D。我认为这可能是获取 4 个模型之外的数据的最直接方法。至于效率低下,您可以将 sql_dump 元素与“解释计划”结合使用,以确保您的查询正确使用索引。

【讨论】:

    猜你喜欢
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2017-04-01
    • 2014-09-24
    • 2019-10-06
    相关资源
    最近更新 更多