Код: Выделить всё
GridView::widget(
[
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'name',
'alias',
[
'attribute' => 'category_id',
'filter' => TreeViewInput::widget(
[
'attribute' => 'category_id',
'name' => '',
'headingOptions' => [
'label' => Yii::t('/modules/catalog', 'Categories')
],
'rootOptions' => [
'label' => '<i class="fa fa-tree"></i>', // custom root label
'class' => 'text-success'
],
'query' => Catalog::find()->addOrderBy('root, lft'),
'asDropdown' => true,
'multiple' => false,
]
),
'format' => 'raw',
'value' => function ($model) {
$catalog = Catalog::find()->andWhere(['id' => $model->category_id])->one();
return $catalog->name ?? $model->category_id;
}
],
],
]
);
Если делать так:
Код: Выделить всё
GridView::widget(
[
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
'id',
'name',
'alias',
[
'attribute' => 'category_id',
'class' => TreeViewInput::class
],
],
]
);
Код: Выделить всё
$column = Yii::createObject(array_merge([
'class' => $this->dataColumnClass ?: DataColumn::className(),
'grid' => $this,
], $column));