Я новичок в Yii. Я разрабатываю систему с фреймворком YII на PHP. Как я могу иметь разную компоновку для другого модуля? Я хочу, чтобы модуль A имел интерфейс A, модуль B с интерфейсом B. Но я знаю, что вход в интерфейс одинаков для всех входов в модуль. Может ли кто-нибудь дать мне свет?
Обновить:
Я нашел один способ, который должен включать:
$this->layout = $layout;
на функцию действия внутри контроллера перед рендерингом страницы. Однако я обнаружил, что это не так эффективно, поскольку при каждом действии мне нужно повторять строчку. Есть ли способ, которым мы можем выполнить настройку на странице config / main.php? вероятно, в этой части:
'modules'=>array(
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'123',
'generatorPaths' => array('bootstrap.gii'),
),
'admin',
'consultant',
'client',
),
Вы можете установить переменные для вашего модуля в вашем config
как это:
'modules'=>array(
'gii'=>array(
'class'=>'system.gii.GiiModule',
'password'=>'123',
'generatorPaths' => array('bootstrap.gii'),
),
'admin' => array(
'layout' => 'your_layout' //The layout for this module
),
'consultant',
'client',
),
Таким образом, вы можете реализовать макет по умолчанию для каждого отдельного модуля. Без необходимости добавлять controller
методы или переменные.
Для получения дополнительной информации см. Документы: Вот а также Вот
попробуй это:
class YourController extends Controller {
public $layout = 'your_layout';
}