动态设置Yii布局

时间:2013-11-11 21:30:24

标签: php layout yii public

我想从配置文件中的应用程序范围的参数集动态设置布局。

我认为以下内容可行:

<?php

class SiteController extends Controller
{
    public $layout;
    public $layout_name;
    $this->layout_name = Yii::app()->params['layout'];

    $this->layout = "//layouts/".$this->layout_name;

我陷入困境,我认为由于对PHP的基本误解[完全诚实]。我收到以下错误:

Parse error: syntax error, unexpected T_VARIABLE, expecting T_FUNCTION in /chroot/home/mikloswe/miklos.web44.net/html/content/protected/controllers/SiteController.php on line 7

任何人都可以看到解决这个问题的方法或者指出一个更好的替代方案来设置布局文件吗?我的主要目标是将布局文件设置在一个地方以覆盖所有控制器。

另外,我不介意为什么PHP不允许我把Yii :: app() - &gt; params ['layout']放在一个函数之外但在一个类文件中,我觉得不喜欢我错过了什么。

1 个答案:

答案 0 :(得分:1)

Yii的init函数适用于这些类型的东西。将此方法添加到您的班级;

public function init() {
    $this->layout_name = Yii::app()->params['layout'];

    $this->layout = "//layouts/".$this->layout_name;
}