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';
}
}
私がやりたいことは非常に単純ですが、Googleでもsymfony docでもこのWebサイトでも答えが見つかりませんでした。コントローラーからこの UserType にオプションを送信したいと考えています。
たとえば、「tel」と「address」の入力を追加したくない場合があります。または、この入力を必須にしたい場合もあれば、同じ入力を必須にしたくない場合もあります。
これどうやってするの ?
ありがとうございました、