2016-06-14 42 views
0

我有一個這樣的插件:的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 
     */ 
    } 
} 

我把這種插件多次在同一頁(一個在佈局中,一個在視圖中,一個在控制器等..),並且我不需要在同一頁面上顯示兩次新聞。所以我認爲要使用「不在」的條件,但我怎樣才能讓小部件彼此交流?使用單身?

THX MS

回答

2

在Widget類:

class ShowNewsWidget extends Widget{ 

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


    public function run(){ 

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

    } 
} 

在View:

<?php echo ShowNewsWidget::widget([ 
    'exclude' => [1, 3] 
]); ?>