【问题标题】:Yii passing parameters to widgetYii 将参数传递给小部件
【发布时间】:2013-01-31 21:41:39
【问题描述】:

对不起,如果我使用了错误的关键字。可能是因为关键字错误,我没有得到足够的信息。

我们通过这种方式在 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(),但没用。

【问题讨论】:

    标签: yii yii-components


    【解决方案1】:

    使用

    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();
        ....
    }
    

    P.S 为了保持一致性,最好将你的类名大写。

    【讨论】:

    • 文件Shk是否自动加载?
    • 错误不在于初始化的类。因此,我已经编辑了答案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-24
    • 2016-02-01
    • 2020-12-01
    • 2014-07-04
    • 2021-01-27
    相关资源
    最近更新 更多