行を 400 に制限したいだけですが、「400,100」でクエリが作成され、問題が発生します。
これが私のコードです:
$this->paginate = array('limit' => 400,
'order' => array('MantisBugTable.sort_order' => 'ASC'),
'group' => '`MantisBugTable`.`id`',
'joins' => array(
array(
'alias' => 'MantisLastReadTicketTable',
'table' => 'mantis_last_read_ticket_table',
'type' => 'LEFT',
'conditions' => array('`MantisLastReadTicketTable`.`ticket_id` = `MantisBugTable`.`id`', '`MantisLastReadTicketTable`.`user_id` = '.$userAdminInfo['UserAdmin']['id'])
),
array(
'alias' => 'MantisBugnoteTable',
'table' => 'mantis_bugnote_table',
'type' => 'LEFT',
'conditions' => '`MantisBugnoteTable`.`bug_id` = `MantisBugTable`.`id`'
)
),
'fields' => array('MantisBugTable.*', 'MantisLastReadTicketTable.*', 'COALESCE(MAX(`MantisBugnoteTable`.`last_modified`), `MantisBugTable`.`last_updated`, NULL) AS MantisBugnoteTable__LastModified')
);
しかし、最後に別の「100」を持つ制限でそれを吐き出します:
SELECT `MantisBugTable`.*, `MantisLastReadTicketTable`.*, COALESCE(MAX(`MantisBugnoteTable`.`last_modified`), `MantisBugTable`.`last_updated`, NULL) AS MantisBugnoteTable__LastModified FROM `mantis_bug_table` AS `MantisBugTable` LEFT JOIN `mantis_last_read_ticket_table` AS `MantisLastReadTicketTable` ON (`MantisLastReadTicketTable`.`ticket_id` = `MantisBugTable`.`id` AND `MantisLastReadTicketTable`.`user_id` = 101) LEFT JOIN `mantis_bugnote_table` AS `MantisBugnoteTable` ON (`MantisBugnoteTable`.`bug_id` = `MantisBugTable`.`id`) WHERE `MantisBugTable`.`handler_id` = 0 AND (NOT (`MantisBugTable`.`category_id` IN (10, 12)) AND NOT (`MantisBugTable`.`status` IN (80, 90))) GROUP BY `MantisBugTable`.`id` ORDER BY `MantisBugTable`.`sort_order` ASC LIMIT 400, 100
なぜそれが起こっていると思いますか?
'offset' => 0 を設定しようとしましたが、うまくいきませんでした。
ありがとう、アンディ