|  |  |  | @ -62,25 +62,33 @@ class DataColumn extends Column | 
			
		
	
		
			
				
					|  |  |  |  | 		if ($this->attribute !== null && $this->header === null) { | 
			
		
	
		
			
				
					|  |  |  |  | 			$provider = $this->grid->dataProvider; | 
			
		
	
		
			
				
					|  |  |  |  | 			if ($this->enableSorting && ($sort = $provider->getSort()) !== false && $sort->hasAttribute($this->attribute)) { | 
			
		
	
		
			
				
					|  |  |  |  | 				return $sort->link($this->attribute); | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 			$models = $provider->getModels(); | 
			
		
	
		
			
				
					|  |  |  |  | 			if (($model = reset($models)) instanceof Model) { | 
			
		
	
		
			
				
					|  |  |  |  | 				/** @var Model $model */ | 
			
		
	
		
			
				
					|  |  |  |  | 				return $model->getAttributeLabel($this->attribute); | 
			
		
	
		
			
				
					|  |  |  |  | 			} elseif ($provider instanceof ActiveDataProvider) { | 
			
		
	
		
			
				
					|  |  |  |  | 				if ($provider->query instanceof ActiveQuery) { | 
			
		
	
		
			
				
					|  |  |  |  | 					/** @var Model $model */ | 
			
		
	
		
			
				
					|  |  |  |  | 					$model = new $provider->query->modelClass; | 
			
		
	
		
			
				
					|  |  |  |  | 					return $model->getAttributeLabel($this->attribute); | 
			
		
	
		
			
				
					|  |  |  |  | 				if (!isset($sort->attributes[$this->attribute]['label'])) { | 
			
		
	
		
			
				
					|  |  |  |  | 					$sort->attributes[$this->attribute]['label'] = $this->getHeaderLabel(); | 
			
		
	
		
			
				
					|  |  |  |  | 				} | 
			
		
	
		
			
				
					|  |  |  |  | 				return $sort->link($this->attribute); | 
			
		
	
		
			
				
					|  |  |  |  | 			} | 
			
		
	
		
			
				
					|  |  |  |  | 			return Inflector::camel2words($this->attribute); | 
			
		
	
		
			
				
					|  |  |  |  | 			return $this->getHeaderLabel(); | 
			
		
	
		
			
				
					|  |  |  |  | 		} else { | 
			
		
	
		
			
				
					|  |  |  |  | 			return parent::renderHeaderCellContent(); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	protected function getHeaderLabel() | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		$provider = $this->grid->dataProvider; | 
			
		
	
		
			
				
					|  |  |  |  | 		if ($provider instanceof ActiveDataProvider && $provider->query instanceof ActiveQuery) { | 
			
		
	
		
			
				
					|  |  |  |  | 			/** @var Model $model */ | 
			
		
	
		
			
				
					|  |  |  |  | 			$model = new $provider->query->modelClass; | 
			
		
	
		
			
				
					|  |  |  |  | 			return $model->getAttributeLabel($this->attribute); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		$models = $provider->getModels(); | 
			
		
	
		
			
				
					|  |  |  |  | 		if (($model = reset($models)) instanceof Model) { | 
			
		
	
		
			
				
					|  |  |  |  | 			/** @var Model $model */ | 
			
		
	
		
			
				
					|  |  |  |  | 			return $model->getAttributeLabel($this->attribute); | 
			
		
	
		
			
				
					|  |  |  |  | 		} | 
			
		
	
		
			
				
					|  |  |  |  | 		return Inflector::camel2words($this->attribute); | 
			
		
	
		
			
				
					|  |  |  |  | 	} | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 	protected function renderFilterCellContent() | 
			
		
	
		
			
				
					|  |  |  |  | 	{ | 
			
		
	
		
			
				
					|  |  |  |  | 		if (is_string($this->filter)) { | 
			
		
	
	
		
			
				
					|  |  |  | 
 |