2017-02-14 130 views
0

建立一個下拉菜單,我有兩個表:yii2 - 使用第二個模型在GridView中列

tb_employee('employeeID', 'firstName', 'lastName', 'departmentID')

tb_skills('skillID', 'week', 'ser', 'skillKnowledge','proficiency', 'instructorID')

在技能視圖中,我在instructorID列中沒有任何價值,因爲我想要的是填充下拉菜單,其中包含所有員工的名字,其中departmentID=20使用戶可以選擇教師他們想。但是,我不知道該怎麼做,這是我的代碼:

<?= GridView::widget([ 
    'dataProvider' => $dataProvider, 
    // 'filterModel' => $searchModel, 
    'columns' => [ 
     ['class' => 'yii\grid\SerialColumn'], 

     'skillID', 
     'week', 
     'ser', 
     'skillKnowledge:ntext', 
     'proficiency:ntext', 
     [ 
       'attribute' => 'instructorID', 
       'value' => Html::activeDropDownList($searchModel, 
        'instructorID', ArrayHelper::map(app\models\TbEmployee::find()->asArray()->all(), 'employeeID', 'firstName'), 
         ['class'=>'form-control','prompt' => 'Select']), 
     ], 

]); ?> 
+0

你要使用過濾器下拉行顯示在gridview? – scaisEdge

回答

0

如果你想使用下拉菜單進行過濾,你應該使用「過濾器」屬性

'attribute' => 'attribute_name', 
'filter' => Html::activeDropDownList($searchModel, 
    'attribute_name', 
    ArrayHelper::map(ModelName::find()->asArray()->all(), 'employeeID', 'firstName'), 
        ['class'=>'form-control','prompt' => 'Select']), 
相關問題