/** * Retrieves recordPrint attribude class method syntax/body; */ public function getRecordPrintSyntax() { if ($this->isDbView()) { return "throw new \\yii\\base\\NotSupportedException"; } if (!$this->recordPrintAttr) { return "return parent::recordPrint()"; } $attrs = explode(',', $this->recordPrintAttr); if (count($attrs) > 1) { $definition = BaseHelper::definition($attrs); return "return implode(' ', \$this->getAttributes({$definition}))"; } return sprintf('return $this->%s', ArrayHelper::getValue($attrs, 0)); }
/** * @return array the generated relation declarations */ public function generateRelations() { if (!$this->generateRelations) { return []; } $relations = parent::generateRelations(); $definitions = ArrayHelper::getValue($relations, $this->tableName, []); // sanitaze all definitions foreach ($definitions as $key => $rules) { $fqn = helpers\BaseHelper::root($this->helperModel->getClass(ModelHelper::RK_MODEL_CM, $rules[1])); $sanitazed = $this->sanitazeRelationDefinition($rules, $fqn); $classAliases = ArrayHelper::getValue($this->relAliases, BaseHelper::basename($this->helperModel->getClass(ModelHelper::RK_MODEL_CM))); // if relation alias does not exists just replace origin definition with sanitazed if (!$classAliases || !isset($classAliases[$key])) { $relations[$this->tableName][$key][0] = $sanitazed; continue; } // duplicate relation definition $relations[$this->tableName][$classAliases[$key]] = $relations[$this->tableName][$key]; // remove origin definition unset($relations[$this->tableName][$key]); // sanitaze relation alias $relations[$this->tableName][$classAliases[$key]][0] = $sanitazed; } if ($relations && isset($relations[$this->tableName])) { ksort($relations[$this->tableName]); } return $relations; }