1

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

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

<?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'] 放在函数之外但在类文件中,我觉得我错过了某物。

4

1 回答 1

1

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

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

    $this->layout = "//layouts/".$this->layout_name;
}
于 2013-11-11T21:32:14.737 回答