2017-11-25 180 views
0

在我的_form.php中,我创建了一个依赖类别的下拉菜单。在我的GridView中的index.php中选择一个类别和一个子类别后,它显示了类别和子类别的ID。如何显示而不是ID如何显示名称而不是ID - GridView Yii2

<?= $form->field($model, 'category_id')->dropDownlist(
       ArrayHelper::map(Category::find()->all(), 'id', 'category_name'), 
       [ 
        'prompt' => 'Select Category', 
        'onchange' =>' 
        $.post("index.php?r=sub-cat/lists&id='.'"+$(this).val(), function(data) { 
        $("select#tickets-sub_cat_id").html(data); 
        });' 

        ] 
); ?> 

<?= $form->field($model, 'sub_cat_id')->dropDownlist(
       ArrayHelper::map(SubCat::find()->all(), 'id', 'sub_category'), 
       [ 
        'prompt' => 'Select Sub Category', 

       ] 
); ?> 

GridView控件代码CATEGORY_NAME和sub_category名称:

<?= GridView::widget([ 
    'dataProvider' => $dataProvider, 
    'filterModel' => $searchModel, 
    'rowOptions' => function($model) { 

     if($model->status == 'On Going') 
     { 
      return ['class' => 'danger']; 
     } else if($model->status == 'Done') { 

      return ['class' => 'success']; 
     } 
    }, 
    'columns' => [ 
     ['class' => 'yii\grid\SerialColumn'], 

    // 'id', 
     'category_id', 
     'sub_cat_id', 
    // 'request_title', 
     'status', 
     [ 
      'attribute' => 'time_start', 
      'value' => 'time_start', 
      'filter' => DatePicker::widget([ 
       'model' => $searchModel, 
       'attribute' => 'time_start', 
       'pluginOptions' => [ 
        'autoclose' => true, 
        'format' => 'yyyy-m-dd', 
        'todayHighlight' => true 
       ] 
       ]), 
     ], 
     'time_end', 
     // 'details', 
     // 'room_no', 
     // 'employee_id', 
      'room_no', 

     ['class' => 'yii\grid\ActionColumn'], 

我的模型

public function getCategory0() 
{ 
    return $this->hasOne(Category::className(), ['id' => 'category_id']); 
} 

public function getSubCat() 
{ 
    return $this->hasOne(SubCat::className(), ['id' => 'sub_cat_id']); 
} 

回答

1

假设你的模型具有正确的关系(例如“ getCategory“),则可以将网格列定义为

'category.category_name' 
+0

我的getCategory和子类别有“return $ this-hasOne – Smurfzzz

+0

我也已经试过那个,但是它显示给gridview”Not Set“ – Smurfzzz

+0

这表明问题出在您的数据中,即您的关系没有被保存。 – pat

相关问题