2012-08-08 24 views
20

Symfony2 ve FOSUserBundle kullanıyorum.Zorunlu değil bir alan zorlayın

Dokümantasyonda detaylandırıldığı gibi, Kullanıcı biriminde bir "isim" özelliği geçersiz kıldım ve oluşturdum.

Tüm gerekli ve sonunda bu formun form görünümünde gösterilmesini sağlarım.

Sorun şu ki: ben form_widget(form.name) ve giriş html etiketi oluşturulduğunda, gerekli = "gerekli" özellik onun içinde oluşturulur. Ve bu, alan doldurulmadığında motorun girişi kırmızıya dönüştürmesine neden olur.

Symfony2'ye bu alanı zorunlu kılmamak için nasıl söylerim? Buranın olması gerektiğini tahmin:

 parent::buildForm($builder, $options); 

    // add your custom field 
    $builder->add('name', 'text', array('label' => 'form.name')); 
    $builder->remove('username'); 

ya da burada:

/** 
* @ORM\Column(type="string", length="255") 
* 
* @Assert\MinLength(limit="0", message="The name is too short.", groups={"Registration", "Profile"}) 
* @Assert\MaxLength(limit="255", message="The name is too long.", groups={"Registration", "Profile"}) 
*/ 
private $name; 

cevap

47
$builder->add('name', 'text', array('label' => 'form.name','required' => false)); 
+5

+1 - Belki bu sadece form öğesinin HTML5 doğrulama durur eklemek yoktur. Varlığınızdan alınan tüm değerler vb. Hala açık durumdadır ve varlığın devam ettirilmesinden önce geçerli olması gerekir. – insertusernamehere

+3

Doğrulama grupları aracılığıyla bunu yapmanın bir yolu var mı? Onları benim için işe yaramaz hale getiren doğrulama gruplarını kılan html5 gerekli özniteliklerini etkilemeyecek gibi görünmüyorum. –

İlgili konular