Эй, для построения формы вы можете использовать компонент формы Symfony просто создайте класс php, который представляет вашу сущность, и не забывайте аннотацию @ORM\Entity()
.
Затем просто используйте php bin/console generate:doctrine:form App:Entity
для генерации класса типа формы с помощью сопоставления метаданных данного класса сущности.
Это зависит от вашей логики модели, вы можете отделить свою форму от одной родительской формы, а также от дочерних форм других ... затем для каждого дочернего элемента form type
вы называете это так:
class ParentType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('title')
->add('summary', Child1Type::class)
->add('content', Child2Type::class)
...
}
}
И после этого просто вернитесь к вам, контроллер:
public function editAction(Request $request, entity $entity)
{
$form = $this->formFactory->createForm(ParentType::class, $entity);
if ($form->isValid() && $form->isSubmitted()) {
//perform some action
}
}
Вы также можете использовать DTO для хорошей практики. Это лучшее решение, чтобы отделить вашу форму, посмотрите на эти статьи: https://williamdurand.fr/2013/12/16/enforcing-data-encapsulation-with-symfony-forms/
http://verraes.net/2013/04/decoupling-symfony2-forms-from-entities/