我在 symfony 2.1.9 下做一些表单出于有用的原因,我做了一个 FUser 类,它从我的用户实体扩展而来。我已经完成了一个 UserType 类,以便能够重用我的表单。
我的 UserType 类如下所示:
<?php
namespace CD\BoutiqueBundle\Form;
use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;
use Symfony\Component\OptionsResolver\OptionsResolverInterface;
class UserType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('nom', 'text')
->add('prenom', 'text')
->add('mail', 'text')
->add('fb_id','hidden',array('data'=>'null'))
->add('pass', 'repeated',
array('type' => 'password', 'invalid_message' => 'The password fields must match.',
'first_options' => array('label' => 'Mot de passe'),
'second_options' => array('label' => 'Confirmer le mot de passe')))
->add('tel', 'text', array('required' => false))
->add('adresse', 'text')
->add('code_postal', 'text')
->add('ville', 'text')
->add('tel', 'text')
->add('date_naissance', 'birthday', array('widget' => 'choice', 'years' => range(1933,2013,1), 'months' => range(1,12,1), 'days' => range(1,31,1)));
}
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'data_class' => 'CD\ConfigBundle\Entity\User'
));
}
public function getDefaultOptions(array $options)
{
return array(
'data_class' => 'CD\ConfigBundle\Entity\User',
);
}
public function getName()
{
return 'usertype';
}
}
我想做的很简单,但我在谷歌、symfony doc 和这个网站上都没有找到我的答案。我想将选项从我的控制器发送到这个 UserType。
例如,在某些情况下,我不想添加“tel”和“adresse”输入。或者有时,我希望这个输入是必需的,在其他情况下,我希望不需要相同的输入。
我怎样才能做到这一点 ?
谢谢,