CakePHP: получение и объединение нескольких данных модели на одной странице - PullRequest
0 голосов
/ 14 декабря 2011

Это очень общий вопрос Cakephp.Я пытаюсь объединить данные модели из множества разных моделей на заданную страницу.

Я создаю простой менеджер контента для онлайн-резюме моего босса, чтобы он мог управлять им из простого графического интерфейса.Итак, у меня есть модели для всех различных разделов резюме, но мне нужно объединить данные каждой модели на одной странице или с помощью одного контроллера.

Моя интуиция заключается в том, что мне нужно либо построитьмодель для 'cv' (хотя она будет когда-либо только одна) и встраивание соответствующих ассоциаций hasMany / ownTo в модели 'cv' и модели содержимого соответственно, или же для создания статической страницы, способной выполнять запросы контроллеров моделейиндивидуально.Первый кажется излишне трудоемким, учитывая, насколько мал проект, но в последнем случае я не знаю, как делать запросы контроллеров для предоставления данных модели на страницу.Я уверен, что это очень просто, я просто не могу найти ответ!Спасибо!

1 Ответ

2 голосов
/ 14 декабря 2011

Вы можете создать DashboardsController (или как вы хотите его называть), затем в модели Dashboard вы указываете, что вам не нужна таблица базы данных: var $useTable = false;

В файле Config / rout.php добавьте: Router::connect('/', array('controller' => 'dashboards', 'action' => 'index'));, чтобы сделать его домашней страницей (если хотите).

Затем в действии index контроллера Dashboard вы можете использовать $this->loadModel('Whatever');, и вы можете перейти к получению данных из этой модели: $myData = $this->Whatever->find('all');. Вы можете загрузить столько моделей, сколько вам потребуется данных.

TLDR / упрощенный:

1) Make Dashboard controller with 'index' action
2) Make Dashboard model and specify: var $useTable = false;
3) Set Route to use your Dashboard controller for homepage (or any other page: 
  `Router::connect('/', array('controller' => 'dashboards', 'action' => 'index'));`
4) Use $this->loadModel('Whatever'); to gain access to that model's methods
...