2013-11-13 3 views
0

Как создать форму для вложенного массива в Symfony2?Symfony2 Форма для вложенного массива

У меня есть массив:

$array = [ 
    'data' => 'some', 
    'nested' => [ 
     'data' => 'more' 
    ] 
]; 

Как создать форму для редактирования этого массива?

$form = $this->createFormBuilder($array) 
// ??? 
->getForm(); 

Мне нужна форма только для редактирования полей «некоторые» и «больше».

UPDATE я нашел только этот путь:

$arrayFacade = new DotNotation($array); 
$form = $this->createFormBuilder($arrayFacade) 
     ->add('data') 
     ->add('nested:more') 
     ->getForm(); 

DotNotation: https://gist.github.com/elfet/4713488

+0

Вы ищете, что искали? http://symfony.com/doc/current/cookbook/form/form_collections.html –

+0

Да. Как это сделать без создания классов? – Medvedev

ответ

0

Пример

$form = $this->createFormBuilder() 
    ->add('name', 'text', array(
     'data' => $array['name'], 
     'label' => 'Your name' 
    ) 
    ->getForm(); 
$form2 = $this->createFormBuilder() 
    ->add('mySecondForm', 'collection', array(
     'type' => $form 
    ) 
    ->getForm(); 

Почему вы не хотите создавать классы и использования объектов?

+0

И как массировать массив здесь? – Medvedev

+0

Я обновил ответ. Почему бы не использовать классы и сущности? –

+0

Попробуйте вызвать $ form-> getData() - структура массива неверна. – Medvedev

Смежные вопросы