Как получить доступ к моделям в PagesController - или как создать панель мониторинга с CakePHP - PullRequest
3 голосов
/ 07 декабря 2010

У меня есть система обработки заказов и каталогов, созданная в CakePHP.Он управляет заказами, продуктами, пакетами, счетами и т. Д. (Всем, что может понадобиться в основном для интернет-магазина).

Теперь я хочу создать страницу типа «панель мониторинга», на которой будут отображаться последние заказыпродукты, которые необходимо обновить, последние обзоры и т. д. Я собирался создать страницу для PagesController, но я не знаю, как получить доступ к моделям в PagesController.

Есть ли способ получить доступ к несколькимнесвязанные модели на одной странице?

Ответы [ 2 ]

2 голосов
/ 07 декабря 2010
1 голос
/ 07 декабря 2010

Я собирался создать страницу для PagesController, но я не знаю, как получить доступ к моделям в PagesController.

С помощью встроенного PagesController вы не можете. Вам нужно будет создать свой собственный PagesController, который будет выглядеть примерно так: this pastebin .

Другим способом создания такой страницы портала было бы создание Страницы для отображения через встроенный PagesController, представление которого будет содержать различные элементы представления, каждый из которых использует requestAction для извлечения соответствующих данных. Это может быть сложным подходом, если вы не используете или не можете использовать кэширование, потому что requestAction не очень эффективен, так как он начинает новый цикл отправки каждый раз, когда он вызывается. Тем не менее, в сочетании с хорошим, агрессивным кэшированием, это очень модульный подход и очень Cake-y, поскольку он инкапсулирует каждый элемент функциональности вашей панели мониторинга в свой собственный элемент MVC.

Редактировать : просто для большей ясности: если вы не можете хорошо кэшировать элементы панели мониторинга, вы хотите избежать маршрута requestAction. Это просто ужасно медленно, и лучше использовать такой подход, как в ссылке на Balcer, хотя, возможно, он не такой элегантный.

...