4

抱歉,如果我使用了错误的关键字。可能是由于关键字错误,我没有获得足够的信息。

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

class streamList extends CWidget {
  //do some stuff
}

此外,我们在任何地方都使用这个小部件

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

我们如何编写小部件以使其接受参数为

$this->widget("application.components.widget.streamList",array('title'=>'Posts');

我用谷歌搜索但没有解决。请帮忙,先谢谢了。

编辑日志: 另外,我们如何将默认参数值定义为“标题”?我试过public $title = Shk::getTitle()了,但没有用。

4

1 回答 1

12

采用

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

任何属性都可以用默认值初始化并被覆盖

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

编辑

您不能使用函数初始化类属性。这里给出一个解释。一个选项是检查是否$title已设置,如果未Shk::getTitle()init()方法中设置为

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

PS为了保持一致性,最好将您的类名大写。

于 2013-02-15T20:33:06.667 回答