Symfony 2.3: Динамическая кастомизация форм
Это расширенный перевод раздела документации до Symfony 2.3 "Customizing your Form based on the underlying Data". Это не законченный перевод!
Предположим, что наша форма использует некий класс Product,
Кастомизация форм на основе исходных данных
Прежде, чем приступить к динамической генерации формы, давайте быстро взглянем на "голый" класс формы:// 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';
}
}