0
我正在做一些symfony下的表格2.1.9 由於有用的原因,我做了一個FUser類,它從我的用戶實體擴展而來。 我已經完成了一個UserType類,可以重用我的表單。symfony2形式抽象類型發送選項
我的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的文檔,也不在這網站。 我想從我的控制器發送選項到這個UserType。
例如,在某些情況下,我不想添加「tel」和「adresse」輸入。 或者有時,我希望這個輸入是必需的,而在其他情況下,我希望輸入不是必需的。
我該怎麼做?
謝謝
不dinamically。我希望表單在給予控制器參數的功能上發生變化。 – vekah 2013-05-03 13:06:48