Установите переменную в app_controller и используйте ее в макете CakePHP - PullRequest
6 голосов
/ 05 января 2011

Мне нужно установить переменную в app_controller CakePHP и затем использовать ее в моем файле макета по умолчанию.

Есть ли способ установить эту переменную?

Ответы [ 3 ]

12 голосов
/ 05 января 2011

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

function beforeFilter()
  {
  $this->set('whatever', $whatever);
  }

Подробнее об этих функциях обратного вызова здесь .

5 голосов
/ 07 января 2011

Функции обратного вызова в AppController - это место для переменных $ this-> set (), которые вы хотите сделать доступными для всех ваших представлений и макетов.beforeFilter () вызывается перед всеми действиями контроллера.Если вы хотите установить переменную представления после выполнения действия, используйте beforeRender ().Вы можете получить доступ к другим переменным вида в ассоциативном массиве $ this-> viewVars.

function beforeRender() {
    $new = "Universal " . $this->viewVars['layoutTitle']; 
    $this->set('universalTitle', $new);
}
0 голосов
/ 29 апреля 2015

Вы можете использовать это, чтобы установить переменную: $ This-> набор (компактный ( 'currentJobId'));

Он установит массив одновременно с настройкой значений

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