2015-11-03 117 views
0

我有一個帶GridView的Index視圖,顯示與日期相關的項目列表。我在該視圖上還有另一個鏈接,我打算填充日曆小部件,在日曆中顯示所有行項目而不是表格。Yii2 - 將Active View中的ActiveDataProvider傳遞給另一個控制器

用戶可能已經設置了一個或多個過濾器。我怎樣才能將視圖中的ActiveDataProvider變量傳遞給另一個操作,以便我可以填充日曆小部件。

編輯:

目前我測試如下:

VIEW:

<?= Html::a('Test', ['calendar', 'dataProvider' => $dataProvider], [ 'class' => 'btn btn-primary', ]) ?> 

控制器:

public function actionCalendar($dataProvider) 
    { 
     print_r($dataProvider->getModels());die(""); 
    } 

我得到一個錯誤......

錯誤請求(#400)

收到參數「dataProvider」的無效數據。

回答

1

在控制器可以使用重定向

return Yii::$app->response->redirect(array('yourController/yourAction', 
     'yourParam'=>$yourDataProvider)); 

確保了yourParam名外部動作

鑑於你可以簡單地使用URL匹配帕拉姆名稱。

添加適當use如果需要

use yii\helpers\Url; 

這個樣本是<a>標籤

<a href="<?= Url::to(['yourController/yourAction', 
      'yourParam' => $yourDataProvider ]) ?>" '>your anchor text</a> 

在你的情況,你在呼喚一個視圖鏈接控制器/動作試試這個

<?= Html::a('Test', ['calendar', 'dataProvider' => $dataProvider], 
     [ 
      'class' => 'btn btn-primary', 
      'method' => 'post', 
     ], 
    ]) ?> 
+0

顯示控制器/動作接收器的代碼。請使用 – scaisEdge

+0

我已更新答案。希望這是有用的 – scaisEdge

+0

我實際上已經嘗試過後期方法,並且它給了我同樣的錯誤。實際上,我通過簡單地使用SearchModel的GET參數創建鏈接來解決我的最終需求。儘管如此,我仍然對能夠從視圖傳遞複雜變量到控制器的解決方案感興趣。也許,它擊敗了MVC的目的(dunno) –

相關問題