Каждый экзамен имеет одну учебную программу, в каждом учебном плане есть один экзамен. Таким образом, я сделал это в модели экзамен:Разбиение страницы с использованием нескольких моделей
public $hasOne = 'Syllabuses'; //table: syllabuses, model: Syllabuses
От UsersController
я сделал это:
public $uses = array('Setting', 'Exam', 'Syllabuses');
И в методе в UsersController
я хотел назвать постраничной:
$options = array(
'fields' => array('Exam.id', 'Exam.name', 'Syllabuses.id', 'Syllabuses.name', 'Syllabuses.syllabus', 'Syllabuses.last_updated'),
'joins' => array(
'table' => 'syllabuses',
'conditions' => array('Exam.id = Syllabuses.exam_id')
)
);
$this->paginate = $options;
$this->set('syllabuses', $this->Paginator->paginate('Syllabuses'));
экзамены стол:
---+------+
id | name |
---+------+
и учебные программы стол:
---+---------+------+----------+--------------+
id | exam_id | name | syllabus | last_updated |
---+---------+------+----------+--------------+
Итак, я получил некоторую ошибку. Как это:
Error: SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'syllabuses Array LEFT JOIN
oes
.syllabuses
ASSyllabuses
ON (Syllabuses
.`' at line 1
И мой SQL, подготовившая CakePHP является:
SELECT `Exam`.`id`, `Exam`.`name`, `Syllabuses`.`id`, `Syllabuses`.`name`, `Syllabuses`.`syllabus`, `Syllabuses`.`last_updated`
FROM `oes`.`exams` AS `Exam` syllabuses Array
LEFT JOIN `oes`.`syllabuses` AS `Syllabuses` ON (`Syllabuses`.`exam_id` = `Exam`.`id`)
WHERE 1 = 1 LIMIT 20
Но то, что я хочу что-то вроде сильфона запроса. Я протестировал его в mysql:
SELECT `Exam`.`id` AS eid, `Exam`.`name` AS ename, `Syllabuses`.`id` AS sid, `Syllabuses`.`name` AS sname, `Syllabuses`.`syllabus` , `Syllabuses`.`last_updated`
FROM `oes`.`syllabuses` AS `Syllabuses` , exams AS Exam
WHERE Exam.id = Syllabuses.exam_id
ORDER BY Exam.id
LIMIT 20
Теперь, пожалуйста, помогите мне в этом. Какое изменение может заставить CakePHP подготовить такой запрос (что я пробовал), чтобы сделать мой Pagination
.