protected function resolveClausesAndStructure() { $attribute = $this->filter->getResolvedAttribute(); //is Dynamically Derived Attributes? __User if ($this->modelRelationsAndAttributesToReportAdapter->isDynamicallyDerivedAttribute($attribute)) { $this->resolveDynamicallyDerivedAttributeClauseAndStructure(); } elseif ($this->modelRelationsAndAttributesToReportAdapter instanceof ModelRelationsAndAttributesToSummableReportAdapter && $this->modelRelationsAndAttributesToReportAdapter->isAttributeACalculatedGroupByModifier($attribute)) { $this->clauses[1] = array('attributeName' => $this->getRealAttributeName(), 'operatorType' => $this->filter->getOperator(), 'value' => $this->resolveValueForOperator(), 'modifierType' => $this->modelRelationsAndAttributesToReportAdapter->getCalculationOrModifierType($attribute)); $this->structure = '1'; } elseif ($this->modelRelationsAndAttributesToReportAdapter->relationIsReportedAsAttribute($attribute)) { $this->resolveRelationReportedAsAttributeClauseAndStructure(); } else { $this->resolveNonRelationNonDerivedAttributeClauseAndStructure(); } }
/** * @param string $relation * @return bool */ public function relationIsReportedAsAttribute($relation) { assert('is_string($relation)'); if ($this->isAttributeACalculationOrModifier($relation)) { return false; } return parent::relationIsReportedAsAttribute($relation); }