Я очень новичок в Symfony, поэтому вопрос может показаться немного простым, но мне нужна помощь.
Я создал новый пакет.
Я добавил новый маршрут в Me\MyBundle\Resources\config\routing.yml
:
my_homepage: pattern: / defaults: { _controller: MeMyBundle:Default:index }
Контроллер Bundle выглядит просто так:
namespace Me\MyBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; class DefaultController extends Controller { public function indexAction() { $form = $this->createFormBuilder() ->getForm() ; return $this->render('MeMyBundle::index.html.twig', array( 'form' => $form->createView(), 'param1' => 'some_string_1', 'param2' => 'another string', )); } }
В шаблоне ветки я могу читать и обрабатывать соответствующие params
, как я хочу.
Полное действие происходит в сгенерированной форме, где есть запросы AJAX, перенаправленные на другой контроллер.
То, что я хочу достичь, – создать новое настраиваемое поле формы, которое может повторяться в одной и той же форме несколько раз с разными params
.
Например, я бы хотел, чтобы мой indexAction()
выглядел так:
public function indexAction() { $paramsArr_1 = array( 'param1' => 'some_string_1', 'param2' => 'another string', ); $paramsArr_2 = array( 'param1' => 'some_string_2', 'param2' => 'another fine string', ); $form = $this->createFormBuilder() ->add(myCustomField, $paramsArr_1) ->add(myCustomField_2, $paramsArr_2) ->getForm() ; return $this->render('MeMyBundle::index.html.twig', array( 'form' => $form->createView() )); }
Да, я видел эту статью , но мне это не очень помогло. Я не мог заставить его работать.
Буду признателен за любую оказанную помощь.
Из того, что я знаю, поля формы расширяют базовый класс формы, поэтому ваш «myCustomField» может быть другой формой.
Проверьте это: http://symfony.com/doc/current/reference/forms/types/form.html
Как вы знаете, каждый объект Form привязал к нему объект, поэтому вместо массивов вы можете создать новый объект с установленными на нем значениями, а затем добавить эту форму, сколько раз вы хотите, с объектами, содержащими разные данные.