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 に答える