Yii将参数传递给widget

时间:2013-02-15 20:24:25

标签: yii yii-components

很抱歉,如果我使用错误的关键字。由于错误的关键字,我可能无法获得足够的信息。

我们通过这种方式在Yii中创建小部件:

class streamList extends CWidget {
  //do some stuff
}

此外,我们将此窗口小部件用作

$this->widget("application.components.widget.streamList");

我们如何以接受参数

的方式编写窗口小部件
$this->widget("application.components.widget.streamList",array('title'=>'Posts');
我用谷歌搜索但没有解决。请提前帮助,谢谢。

修改日志 另外,我们如何将默认参数值定义为'titile'?我试过了public $title = Shk::getTitle(),但它没有用。

1 个答案:

答案 0 :(得分:11)

使用

class StreamList extends CWidget {
    //do some stuff
    public $title;
}

任何属性都可以使用默认值初始化并由

覆盖
$this->widget("application.components.widget.StreamList",array('title'=>'Posts',.....)

修改

您无法使用函数初始化类属性。给出了解释here。一个选项是检查$title是否已设置,如果未在Shk::getTitle()方法中将其设置为init(),则

public function init(){
    ....
    if(!isset($this->title) || !$this->title)
        $this->title=Shk::getTitle();
    ....
}

为了保持一致性,最好将你的班级名称大写。