Example #1
0
 /**
  * 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));
 }
Example #2
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;
 }