@redguard

Как правильно встраивать форму в шаблон symfony 3?

Сел изучать симфони. Делаю простую страницу со встроенной формой.
Есть контроллер для страницы.
Есть шаблон страницы.
Есть шаблон формы.

Я сохраняю результат работы createForm в переменную $form
$form = $this->createForm(SendForm::class);
и добавляю в шаблон страницы так

return $this->render(
            'account/account.html.twig',
            array(
                'user_name' => $userName,
                'send_form' =>$form // Передаю в шаблон
            )
        );

Получаю ошибку
Fatal Error: Object of class Symfony\Component\Form\Form could not be converted to string
\

Далее я пытался сперва рендерить форму в переменную.
$form = $this->render(
            'account/send_form.html.twig',
            array('form' => $form->createView())
        );

И получал escaped html формы.

Как правильно отрендерить форму для того чтобы вставит в шаблон страницы?

Код контроллера:
<?php

namespace AppBundle\Controller;

use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\HttpFoundation\Response;

use AppBundle\Form\SendForm;

class AccountController extends Controller {
    /**
     * @Route("/account", name="account")
     */
    public function indexAction(Request $request)
    {

        $userName = "Имя";

        //Создаю форму
        $form = $this->createForm(SendForm::class);
       
        return $this->render(
            'account/account.html.twig',
            array(
                'user_name' => $userName,
                'send_form' =>$form // Передаю в шаблон
            )
        );
        
    }
    
}
?>
  • Вопрос задан
  • 755 просмотров
Решения вопроса 1
dvzzz
@dvzzz
PHP, Symfony
Передать форму в шаблон:

'form' => $form->createView()

Рендер в twig:
{{ form_start(form) }}
{{ form_widget(form) }}
{{ form_end(form) }}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
slimus
@slimus
Symfony, Golang
Всё что может вам понадобится на ранних этапах про формы и симфони тут: symfony.com/doc/current/book/forms.html

Кажется у вас все верно (в случае $form->createView()). Что значит escaped?
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы