Инфраструктура Yii передает переменную из контроллера в представление

Чтобы передать переменную в логин, я использую:

$this->render('login', array('model' => $model));

Но мне также нужно получить доступ к этой переменной в части шаблона footer.php:

Я пытаюсь это:

$this->render('footer', array('model' => $model));

Но когда в footer.php я пытаюсь получить доступ к переменной, я получаю сообщение об ошибке «неопределенная переменная»

Что случилось ?

4

Решение

Шаблоны в yii получают данные от контроллера $this ссылка.

<?php
SomeController extends Controller {
public $something;

public function init() {
$this->something = 'qwerty';
}
public function actionA() {
$this->render('view', array('model' => $model));
}
}

В шаблоне:

<?php echo $this->something; ?>

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

6

Другие решения

Вы можете использовать класс контроллера для передачи переменных в шаблон представления, например

Контроллер:

SomeController extends Controller {

public function actionIndex() {
$var1 = 'abc';
$var2 = '123';
$this->render('view',
array('var1' => $var1,
'var2' => $var2,
));
}
}

В файле шаблона представления вы можете получить доступ к этим 2 переменным ($ var1 & $ var2) со своим именем:

echo $var1;

echo $var2 
6

Структура MVC не перенаправить прямую страницу.

Вы создаете первое действие нижнего колонтитула и после перенаправления на страницу.

Вы видите демонстрационное действие входа в систему в site_controller.php

следить за этим

0
По вопросам рекламы [email protected]