/** * @param $modelToReportAdapter * @param $modelAttributeToDataProviderAdapter * @param string $modelClassName * @param string $realAttributeName */ public function resolveCastingHintForAttribute($modelToReportAdapter, $modelAttributeToDataProviderAdapter, $modelClassName, $realAttributeName) { assert('$modelToReportAdapter instanceof ModelRelationsAndAttributesToReportAdapter'); if ($modelToReportAdapter->isAttributeReadOptimization($realAttributeName)) { $hintAdapter = new ReadOptimizationDerivedAttributeToDataProviderAdapter($modelToReportAdapter->getModelClassName(), null); $hintModelClassName = $hintAdapter->getAttributeModelClassName(); $modelAttributeToDataProviderAdapter->setCastingHintModelClassNameForAttribute($hintModelClassName); } else { return parent::resolveCastingHintForAttribute($modelToReportAdapter, $modelAttributeToDataProviderAdapter, $modelClassName, $realAttributeName); } }
/** * @param $modelToReportAdapter * @param $modelAttributeToDataProviderAdapter * @param string $modelClassName * @param string $realAttributeName */ protected function resolveCastingHintForAttribute($modelToReportAdapter, $modelAttributeToDataProviderAdapter, $modelClassName, $realAttributeName) { assert('$modelToReportAdapter instanceof ModelRelationsAndAttributesToReportAdapter'); if ($this->isDisplayAttributeMadeViaSelect()) { return parent::resolveCastingHintForAttribute($modelToReportAdapter, $modelAttributeToDataProviderAdapter, $modelClassName, $realAttributeName); } }