Несколько кнопок отправки. Один тип формы

#file-upload #symfony #symfony-forms

#загрузка файла #symfony #symfony-forms

Вопрос:

У меня есть ProfileType форма с пользовательским полем изображения. Возможно ли создать две разные формы из одного и того же типа и объекта на одной странице? Я хочу, чтобы пользователь мог загружать аватар отдельно с помощью ajax, с чем у меня нет проблем, но в случае отсутствия js я хочу доступность и возможность просто использовать старый добрый php, но в отдельных формах.

Ответ №1:

ДА. Вам нужно создать две формы с двумя разными именами:

 $formFactory = $this->container->get('form.factory');
$form1 = $formFactory->createNamed(new MyType(), 'form1', $object);
$form2 = $formFactory->createNamed(new MyType(), 'form2', $object);

if ('POST' === $request->getMethod()) {
    if ($request->request->has('form1')) {
        $form1->bindRequest($request);
        ...
    }

    if ($request->request->has('form2')) {
        $form2->bindRequest($request);
        ...
    }
}