示例#1
0
 /**
  * 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());
     }]]]]);
 }