[英]How do I display the name instead of ID - GridView Yii2
在我的_form.php中,我為類別創建了一個依賴下拉列表。 在index.php的GridView中選擇一個類別和一個子類別后,它將顯示該類別和子類別的ID。 如何顯示category_name和sub_category名稱而不是ID
<?= $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代碼:
<?= 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']);
}
假設您的模型具有適當的關系(例如“ getCategory”),則可以將網格列定義為
'category.category_name'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.