Привязать объект к форме Symfony - PullRequest
0 голосов
/ 05 марта 2019

У меня есть объект с предварительно заполненными данными, и я хочу отобразить их в форме: здесь состояние будет ACTIVE и customerId = 1;

// Form file (ben.file.create)
protected function buildForm()
{
    $this->formBuilder->add('name', 'text', ['label'=>'Nom du patient'])
        ->add('customerId', 'integer')
        ->add('state', 'choice', ['choices'=>['ACTIVE'=>'ACTIVE',
            'DONE'=>'DONE', 'CANCELLED'=>'CANCELLED']]);

}


// in the controller
public function index()
{
    $form = $this->createForm("ben-file-create");

    $file = new BenFile();
    $file->setCustomerId(1);
    $file->setState('ACTIVE');

    $form->getForm()->submit($file); // <--- Here the glue problem
    return $this->render('create-file', array());
}

Похоже, submit не является правильной функцией привязки. Я ожидаю, что форма предварительно заполнена соответствующим образом, и после запроса POST у меня есть обновленная сущность BenFile.

1 Ответ

1 голос
/ 05 марта 2019

Вы можете легко сделать в методе createForm:

// in the controller
public function index(Request $request)
{
    $file = new BenFile();
    $file->setCustomerId(1);
    $file->setState('ACTIVE');

    $form = $this->createForm("ben-file-create", $file);

    // handle submit
    $form->handleRequest($request);

    if ($form->isSubmitted() && $form->isValid()) {
        // flush entity 
        $fileNew = $form->getData();

        $entityManager = $this->getDoctrine()->getManager();
        $entityManager->persist($fileNew );
        $entityManager->flush();
    }

    return $this->render('create-file', array());
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...