2017-02-14 2 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']), 
Смежные вопросы