/** * Creates column objects and initializes them. */ protected function initColumns() { if ($this->_columns) { foreach ($this->_columns as $name => $col) { if (is_string($col)) { $column = $this->createDataColumn($col); } else { $column = Yii::createObject(array_merge($col, ['class' => empty($col['class']) ? DataColumn::className() : __NAMESPACE__ . '\\' . $col['class'], 'grid' => $this])); } if (!$column->visible) { unset($this->_columns[$i]); continue; } $this->_columns[$i] = $column; } } if ($this->_columns) { foreach ($this->_columns as $column) { $column->init(); $filterValue = $this->filter && $column->name && isset($this->filter[$column->name]) ? $this->filter[$column->name] : null; $this->filterPrepared[$column->name] = $column->prepareFilterValue($filterValue); } } }