Symfony 2.3: Динамическая кастомизация форм

Категория: Symfony2
Это расширенный перевод раздела документации до Symfony 2.3 "Customizing your Form based on the underlying Data". Это не законченный перевод!

Кастомизация форм на основе исходных данных

Прежде, чем приступить к динамической генерации формы, давайте быстро взглянем на "голый" класс формы:
// src/Acme/DemoBundle/Form/Type/ProductType.php
namespace Acme\DemoBundle\Form\Type;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;

class ProductType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder->add('name');
$builder->add('price');
}

public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'Acme\DemoBundle\Entity\Product'
));
}

public function getName()
{
return 'product';
}
}

Важно!
Если этот участок кода еще не знаком вам, нужно сделать шаг назад и изучить первый урок по работе с формами.
Предположим, что наша форма использует некий класс Product,



категория: Symfony2