动态设置 Yii 布局


Dynamically setting Yii layout

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

我认为类似以下内容的方法会起作用:

<?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()->params['layout'] 放在函数之外但在类文件中,我觉得我错过了一些东西。

>Yii具有用于此类事情的init函数。将此方法添加到您的类中;

public function init() {
    $this->layout_name = Yii::app()->params['layout'];
    $this->layout = "//layouts/".$this->layout_name;
}
相关文章: