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