public function generate() { try { if ($this->translateModel->createTable) { $tb = new TableBuilder(['tableName' => $this->translateModel->createTable ? $this->translateModel->tableBuilder->tableName : $this->translateModel->tableName, 'fields' => $this->translateModel->tableBuilder->fields, 'db' => $this->baseModel->db]); $tb->dropTable(); } if ($this->baseModel->createTable) { $tb = new TableBuilder(['tableName' => $this->baseModel->createTable ? $this->baseModel->tableBuilder->tableName : $this->baseModel->tableName, 'fields' => $this->baseModel->tableBuilder->fields, 'db' => $this->translateModel->db]); $tb->dropTable(); } } catch (IntegrityException $exp) { } catch (Exception $exp) { } if (!isset($this->baseModel->behaviorModels['trans'])) { $this->baseModel->buildBehaviors($this->baseModel->customBehaviors); } if (isset($this->baseModel->behaviorModels['trans']) && ($trans = $this->findTranslatableBehavior())) { /** @var Behaviors $trans */ $trans->checked = true; if (!$trans->dynamicLangClass) { $trans->attributesLang = []; foreach ($this->translateModel->tableBuilder->fields as $field) { /** @var Field $field */ if ($field->name == $this->baseModel->tableBuilder->tableName . '_id' || !$this->findTranslateField($field->name) || $field->name == $this->translateModel->tableBuilder->primaryKeyName) { continue; } $trans->attributesLang[] = $field->name; $trans->langClassName = $this->translateModel->ns . "\\" . $this->translateModel->modelClass; } } else { $trans->attributesLang = is_array($trans->attributesLang) ? $trans->attributesLang : explode(',', $trans->attributesLang); } foreach ($trans->attributesLang as &$item) { $item = trim($item); } } $files = ArrayHelper::merge($this->baseModel->generate(), $this->translateModel->generate()); if (isset($trans)) { $trans->attributesLang = implode(",", $trans->attributesLang); } return $files; }
public function generate() { try { if ($this->translateModel->createTable) { $tb = new TableBuilder(['tableName' => $this->translateModel->createTable ? $this->translateModel->tableBuilder->tableName : $this->translateModel->tableName, 'fields' => $this->translateModel->tableBuilder->fields, 'db' => $this->baseModel->db]); $tb->dropTable(); } if ($this->baseModel->createTable) { $tb = new TableBuilder(['tableName' => $this->baseModel->createTable ? $this->baseModel->tableBuilder->tableName : $this->baseModel->tableName, 'fields' => $this->baseModel->tableBuilder->fields, 'db' => $this->translateModel->db]); $tb->dropTable(); } } catch (IntegrityException $exp) { } catch (Exception $exp) { } $translationsAttribute = []; foreach ($this->translateModel->tableBuilder->fields as $_next) { /** @var $_next Field */ if (!$this->findTranslateField($_next->name)) { $translationsAttribute[] = $_next->name; } } $files = ArrayHelper::merge($this->baseModel->generate(), $this->translateModel->generate()); return $files; }