Symfony2: Как создать комби-форму из нескольких сущностей?

День добрый. Была поставлена задача сделать форму из сущности. Вроде ничего такого сложного, но как выяснилось, в некоторых случаях кол-во сущностей из которых надо сделать ОДНУ форму больше чем 1... и тут я застрял.

итак:
namespace TimeManagerBundle\Entity;

class Timepatch
{
	//PROPERTIES

    private $timepatchId;

    private $timepatchStart;

    private $timepatchEnd;

    private $note;

	// METHODS
	
    public function getTimepatchId() { /* ... */ }

    public function setTimepatchStart($timepatchStart) { /* ... */ }

    public function getTimepatchStart() { /* ... */ }

    public function setTimepatchEnd($timepatchEnd) { /* ... */ }

    public function getTimepatchEnd() { /* ... */ }

    public function setNote($note) { /* ... */ }

    public function getNote() { /* ... */ }

}


Так вот как сделать форму, с валидацией и прочим если таких сущности две, но форма должна быть одна, тобишь один <form> тэг, один CSRF-token и одна сабмит-кнопка. Есть ли смысл вообще так делать, ибо как обрабатывать сей реквест я тоже не очень-то себе и представляю...

P.S. Если вдруг описание не понятно, то вот картинки:
Итак. Допустим какаой-то медот из репозитория возвращает мне массив с найдеными Сущностями(Timepatch), который может соддержать либо одну, либо несколько записей: e66c93966cb447e59393715e5340f822.PNG9062f781dafa4f5497d37872e7584a82.PNG
этот массив с найдеными записями надо представить в виде ОДНОЙ формы, для того чтоб юзер подкорректировал данные (одной или нескольких Сущностей[Timepatch]) и !разом! отправил все на обработку/валидацию и т.д.
Тоесть желанныя форма может выглядить либо так: 22762f0512a84caeb8d9a11d5b3a911f.PNG
либо вот так : 22a5598a8a504dddab02fdef2c63a72a.PNG

на скриншота форма естественно не настоящая в простая копи\паста. Задача и есть создание такой формы
  • Вопрос задан
  • 2648 просмотров
Пригласить эксперта
Ответы на вопрос 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Ничего не понял.

Просто для ясности, в контексте Symfony/forms нет разницы, вставляете вы в форму еще одну форму или инпут. Вложенность может быть сколь угодно большая. Если вам просто надо две формы для двух сущностей вывести - делаете третью форму и добавляете в нее эти две.

В любом случае у вас должен быть какой-то объект для хранения данных, можно сделать DTO с двумя полями в которых лежат ваши сущности, тогда обработка запросов сведется к тому что бы создать DTO объект и забиндить запрос средствами симфони.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы