「セクター」テーブルをページネーションの結果に結合したいと考えています。何が起こるかは次のとおりです。
セクターに参加するように paginate 変数を設定します。
$this->paginate = array(
'joins' => array(
array(
'table' => 'sectors',
'alias' => 'Sector',
'type' => 'left',
'foreignKey' => false,
'conditions' => array('Company.sector_id = Sector.id'))),
'conditions' => $conditions);
そして行く
$jobs = $this->paginate('Job');
Paginator によって生成されたクエリは、Company の前に Sector に参加するため、破損しています。SQL 出力の一部を次に示します。
SELECT COUNT(*) AS `count` FROM `jobs` AS `Job` left JOIN sectors AS `Sector` ON (`Company`.`sector_id` = 'Sector.id') LEFT JOIN `companies` AS `Company` ON (`Job`.`company_id` = `Company`.`id`)
それは次のようになります。
SELECT COUNT(*) AS `count` FROM `jobs` AS `Job` LEFT JOIN `companies` AS `Company` ON (`Job`.`company_id` = `Company`.`id`) left JOIN sectors AS `Sector` ON (`Company`.`sector_id` = 'Sector.id')
Job モデルをページ付けしましたが、それは Company モデルに関連していますが、Sector モデルには関連していません。そのため、ページネーションを使用してセクターに参加する必要があります。
どうすればこれを修正できますか?