ページネーションを実行しているクエリがあります。このクエリには、最後の「ExceptionWorkflowLog」のコピーに追加して「LastWorkflowLog」と呼ぶ afterfind メソッドを持つモデル (「PaymentException」) が含まれています。
ページネーションに渡されるクエリ:
$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' => 配列 (ExceptionWorkflowLogs の), 'LastWorkflowLog' => 配列 (最後にインデックス付けされた ExceptionWorkflowLog のフィールドと値) 1 => ...
ExceptionWorkflowLog は、PaymentException.id によって PaymentException にマップされます。これは多対 1 の関係です (したがって、結果の配列は ExceptionWorkflowLog の下にあります)。
paginate を使用して、最後にインデックス付けされた ExceptionWorkflowLog または LastWorkflowLog の「更新された」フィールドを並べ替えたいと思います。
ページネーションでこれを行う方法はありますか?現在、「LastWorkflowLog.updated」を指すようにテーブルの見出しを設定すると、クエリは「LastWorkflowLog」が何であるかを認識しないため、false を返します。