/** * 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 * @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); }
/** * Return a form to edit the field. * * @param AssignmentRepositoryInterface $assignments * @param FieldFormBuilder $form * @param UserModel $model * @param $id * @return \Symfony\Component\HttpFoundation\Response */ public function edit(AssignmentRepositoryInterface $assignments, FieldFormBuilder $form, UserModel $model, $id) { /* @var AssignmentInterface $assignment */ $assignment = $assignments->find($id); return $form->setStream($model->getStream())->render($assignment->getFieldId()); }