2016-06-14 14 views
0

私はこのようなウィジェットがあります:私はなど同じページ(レイアウト内の1つの、ビュー内の1、コントローラ内の1、で何度もこのウィジェットを呼び出すYiiの2ウィジェット「コミュ」

class ShowNewsWidget extends Widget{ 

    public function init(){ 
     parent::init(); 
    } 


    public function run(){  
     $news = NewsModel::findAll(['not in ','id',$array]); 

     /* 
     HERE SHOW THE NEWS 
     */ 
    } 
} 

を..)、同じページに2回のニュースを1回も出す必要はありません。だから、私は「not in」状態を使うと思いますが、どうすればウィジェットを互いにコミニケーションさせることができますか?シングルトンを使う?

ThxをWidgetクラスで MS

答えて

2

:ビューで

class ShowNewsWidget extends Widget{ 

    public $exclude = []; // excluded news ids 


    public function run(){ 

     $news = NewsModel::find() 
      ->andFilterWhere(['not in ','id', $this->exclude]) 
      ->all(); 

    } 
} 

<?php echo ShowNewsWidget::widget([ 
    'exclude' => [1, 3] 
]); ?> 
関連する問題