CakePHP - где лучше всего разместить логику для конкретного макета? - PullRequest
2 голосов
/ 27 октября 2011

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

Административному разделу приложения эти данные не понадобятся, поскольку он использует другой макет. Где в cakePHP лучше всего разместить логику, которая устанавливает данные этого сеанса?

Является ли лучший подход для создания другого контроллера, который расширяет AppController и следит за настройкой данных этого сеанса?

Ответы [ 3 ]

1 голос
/ 27 октября 2011

Вы можете создать элементы для этих 3 списков. Лучший способ сделать это - использовать requestAction и элементы . Использование элементов также позволяет кэшировать вывод, что всегда является хорошей идеей.

1 голос
/ 27 октября 2011

укажите его в beforeRender () в AppController. Если у вас есть beforeRender () в любом контроллере, не забудьте вызвать parent :: beforeRender ()

0 голосов
/ 27 октября 2011

Я все еще довольно новичок в CakePHP, так что, возможно, это не лучший способ сделать это, но у меня есть модель, использующая пользовательское поведение для проверки, были ли загружены данные сеанса, и загрузки данных из сеанса илибаза данных зависит от того, была ли она уже загружена.Поэтому я думаю, что код может быть написан как поведение, и модель будет использоваться там, где это необходимо.Кто-то поправит меня, если я здесь не прав.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...