/** * Return the form for editing an existing file. * * @param FileRepositoryInterface $files * @param FileEntryFormBuilder $form * @param $id * @return \Symfony\Component\HttpFoundation\Response */ public function edit(FileRepositoryInterface $files, FileFormBuilder $fileForm, EntryFormBuilder $entryForm, FileEntryFormBuilder $form, $id) { /* @var FileInterface $file */ $file = $files->find($id); $form->addForm('entry', $entryForm->setModel($file->getFolder()->getEntryModelName())->setEntry($file->getEntry())); $form->addForm('file', $fileForm->setEntry($file)); return $form->render($id); }
/** * Handle the form sections. * * @param FileEntryFormBuilder $builder */ public function handle(FileEntryFormBuilder $builder) { $entryForm = $builder->getChildForm('entry'); $fileForm = $builder->getChildForm('file'); /* @var EntryInterface $entry */ $entry = $entryForm->getFormEntry(); $builder->setSections([['tabs' => ['file' => ['title' => 'anomaly.module.files::tab.file', 'fields' => function () use($fileForm) { return array_map(function ($field) { return 'file_' . $field['field']; }, $fileForm->getFields()); }], 'fields' => ['title' => 'anomaly.module.files::tab.fields', 'fields' => function () use($entry) { return array_map(function ($slug) { return 'entry_' . $slug; }, $entry->getAssignmentFieldSlugs()); }]]]]); }