Symfony 4 несколько форм (шагов) для одного лица - PullRequest
0 голосов
/ 09 января 2019

У меня есть таблица и класс сущности с несколькими (30) полями. Я хочу построить не одну большую форму, а, например, 3 формы (по 10 полей каждая), которые сохранят следующие поля в одной записи в таблице. Это просто сделать в чистом PHP или другой простой среде, где я делаю это вручную. Как это сделать в Symfony, где многие вещи более автоматизированы? Я ищу общий совет, какой подход использовать.

Ответы [ 2 ]

0 голосов
/ 07 августа 2019

Возможно, вы захотите взглянуть на https://github.com/craue/CraueFormFlowBundle, он делает именно то, что вам нужно: создает многошаговые формы для больших форм. У меня довольно хороший опыт работы с Symfony 4.

Пожалуйста отметьте также и демоверсии.

0 голосов
/ 09 января 2019

Эй, для построения формы вы можете использовать компонент формы 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/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...