2013-03-11 1 views
5

YII:コントローラーからウィジェットにデータを渡していますか?私は、レンダリング関数にデータを渡し、検索ページを持っている

public function actionIndex() { 

    $this->render(
    'searchResults', 
    array(
     'dataProvider' => $dataProvider, 
     'searchQuery' => $searchQuery, 
    ) 
); 
} 

問題がある、私はまた、サイドバーに表示されるウィジェットにここからこのデータを渡す必要があります。ウィジェットは、現在、そのようなレイアウト/ main.phpに表示されます。

<?php 
    $this->widget('searchSidebar', array(
     'id' => 'searchSidebar', 
    )); 
?> 

は、どのように私は再び、クエリを再実行することなく、コントローラからこのwidetにデータを渡すに行きますか?

+0

。このように見えて、あなたが行きたいところに行くかもしれない:http://www.yiiframework.com/forum/index.php/topic/24316-using-yii-events/ –

答えて

3

のdataProviderはすでに、すべてのデータは、あなたがでどこでも操作が容易になります

class Controller extends CController 
{ 
    public $data_exchange=''; 
    ... 
} 

あなたのコントローラーで別の変数を作成することが主なレイアウトに配置するには

$dataProvider->data 
$dataProvider->getData() 

に含まれています$this->data_exchangeのコードはメインレイアウトのbreadcrumbsに似ています

あなたのビューコードは

としてデータを定義します。おそらく、あなたはYiiのイベントを見ることができ

$this->data_exchange = $dataProvider->data 
関連する問題