В Cakephp использование помощника для установки переменных шаблона
Вопрос
Можно ли установить переменную шаблона в помощнике?
В конечном счете, то, что я пытаюсь сделать, - это добавить вспомогательный код в заголовок макета для использования с javascript и тому подобным.
Способы, которые я могу придумать, которые я бы предпочел не использовать:
- Передача объекта просмотра:не хотите беспокоиться о необходимости вызывать дополнительную функцию
- используя ключевое слово "global" для получения представления, мне действительно хотелось бы избегать его использования, за исключением крайнего случая, поскольку оно не считается ортодоксальным
Есть какие-нибудь мысли?
Обновление 2012-02-20: Поскольку cake был обновлен совсем недавно, я попытался включить ответы на Cake 1.2, а также на Cake 2.Спасибо Адаму и Марку за их рекомендации
Решение
Я обнаружил, что вы можете использовать реестр классов, чтобы захватить его, поэтому я создал эту функцию в своем помощнике:
/**
* Access to the view for special operatoins
*/
protected function getView() {
return ClassRegistry::getObject('view');
}
Обновление 2013-02-20:Я написал выше для Cake 1.2, Адам (в комментарии ниже) предложил использовать $this->_View->viewVars['var']
для торта 2.3, который выглядит аппетитно, но у меня нет способа протестировать.