1

我有一个查询,我正在通过分页运行。此查询包含一个模型(“PaymentException”),该模型具有一个 afterfind 方法,该方法附加上一个“ExceptionWorkflowLog”的副本,并将其称为“LastWorkflowLog”。

传递给分页的查询:

    $this->paginate = array(
        'fields' => array(
            'PaymentException.*', 'Procedure.id', 'Procedure.cpt',
            'Procedure.expected_amount', 'Procedure.allowed_amount', 'Procedure.difference_amount',
            'Claim.id', 'Claim.number', 'Payer.abbr'
        ),
        'limit' => 50,
        'joins' => array(
            array(
                'table' => 'procedures',
                'alias' => 'Procedure',
                'conditions' => array('Procedure.id = PaymentException.procedure_id')
            ),
            array(
                'table' => 'claims',
                'alias' => 'Claim',
                'conditions' => array('Claim.id = Procedure.claim_id')
            ),
            array(
                'table' => 'payers',
                'alias' => 'Payer',
                'conditions' => array('Payer.id = Procedure.payer_id')
            ),
            array(
                'table' => 'groups',
                'alias' => 'Groups',
                'conditions' => array('Groups.id = Claim.group_id')
            )
        ),
        'conditions' => $conditions,
        'contain' => array('ExceptionWorkflowLog')
    );

结果数组(来自结合了“PaymentException”、“ExceptionWorkflowLog”和“LastWorkflowLog”的查询)如下所示:

0 =>
  'PaymentException' => 数组(字段和值),
  'ExceptionWorkflowLog' => 数组(异常工作流日志),
  'LastWorkflowLog' => 数组(最后索引的 ExceptionWorkflowLog 的字段和值)
1 => ...

ExceptionWorkflowLog 通过 PaymentException.id 映射到 PaymentException。这是多对一的关系(因此是 ExceptionWorkflowLog 下的结果数组)。

我想使用分页对最后索引的 ExceptionWorkflowLog 或 LastWorkflowLog 上的“更新”字段进行排序。

有没有办法用分页来做到这一点?目前,如果我将表标题设置为指向“LastWorkflowLog.updated”,则查询返回 false,因为查询不知道“LastWorkflowLog”是什么。

4

1 回答 1

0

由于这有几百个视图,我想我会回来发布我所做的。CakePHP 对连接的处理非常糟糕。我重写了查询以不使用连接,而是使用包含。这似乎解决了它。我觉得脏。

于 2013-02-25T07:40:16.430 回答