/** * Handle the command. * * @param AssignmentSchema $schema */ public function handle(AssignmentSchema $schema, AssignmentRepositoryInterface $assignments) { $stream = $this->assignment->getStream(); /* @var AssignmentInterface $assignment */ $assignment = $assignments->find($this->assignment->getId()); // If nothing is different then skip it. if ($assignment->isTranslatable() == $this->assignment->isTranslatable()) { return; } /* * If it's NOW translatable then move it from * the main table to the translations table. */ if ($this->assignment->isTranslatable()) { $schema->dropColumn($stream->getEntryTableName(), $assignment->getFieldType(true)); $schema->addColumn($stream->getEntryTranslationsTableName(), $assignment->getFieldType(true), $assignment); } /* * If it's NOT translatable then move it from * the translations table to the main table. */ if (!$this->assignment->isTranslatable()) { $schema->dropColumn($stream->getEntryTranslationsTableName(), $assignment->getFieldType(true)); $schema->addColumn($stream->getEntryTableName(), $assignment->getFieldType(true), $assignment); } }
/** * Handle the command. * * @param AssignmentSchema $schema */ public function handle(AssignmentSchema $schema) { $stream = $this->assignment->getStream(); $type = $this->assignment->getFieldType(); if (!$this->assignment->isTranslatable()) { $table = $stream->getEntryTableName(); } else { $table = $stream->getEntryTranslationsTableName(); } $schema->updateColumn($table, $type, $this->assignment); }
/** * Handle the command. * * @param AssignmentSchema $schema * @param AssignmentRepositoryInterface $assignments */ public function handle(AssignmentSchema $schema, AssignmentRepositoryInterface $assignments) { $stream = $this->assignment->getStream(); $type = $this->assignment->getFieldType(true); if (!$this->assignment->isTranslatable()) { $table = $stream->getEntryTableName(); } else { $table = $stream->getEntryTranslationsTableName(); } /* @var AssignmentInterface $assignment */ $assignment = $assignments->find($this->assignment->getId()); $assignment = clone $assignment; $schema->renameColumn($table, $type, $assignment); }