2012-03-29 6 views
0

ich verwende FOS Benutzer Bundle und ich möchte die Validierungsdatei FOS/UserBundle/Ressourcen/config/validaiton.xml außer Kraft zu setzen:Symfony2 Überschreibung Modellvalidierung

<constraint name="FOS\UserBundle\Validator\Unique"> 
    <option name="property">usernameCanonical</option> 
    <option name="message">fos_user.username.already_used</option> 
    <option name="groups"> 
     <!-- <value>Registration</value> --> 
     <value>Profile</value> 
    </option> 
</constraint> 

Benutzername ist nicht in meinem Anmeldeformular (ich stelle es nur versteckt), das ist die Validierung sollte keine Fehler produzieren ...

Vielleicht ein besserer Weg, es gibt den Benutzernamen des Formulars zu entfernen ...

Antwort

2

tun, um den Benutzernamen Feld des Formulars in der richtigen Weise zu entfernen, sollten Sie die RegistrationFormType außer Kraft setzen, Ihre eigenen erstellen und von der ursprünglichen FOSUserBundle erstreckt

<?php 
namespace Acme\UserBundle\Form\Type; 
use Symfony\Component\Form\FormBuilder; 
use FOS\UserBundle\Form\Type\RegistrationFormType as BaseType; 

class RegistrationFormType extends BaseType 
{ 
    public function buildForm(FormBuilder $builder, array $options) 
    { 
     $builder->add('email', 'email') 
       ->add('plainPassword', 'repeated', array('type' => 'password')) 

       // your other custom fields, if any. 

    } 
} 

Jetzt, Sie sollte das übergeordnete Formular als Dienst deklarieren und dann der Konfigurationsdatei FOSUserBundle mitteilen, dass Sie jetzt ein übergeordnetes Formular verwenden. Here is the complete documentation.

+0

sry, das funktioniert nicht. Es fragt immer noch nach einem Benutzernamen. Daher denke ich, dass die Validierung noch aktiv ist. – tester

1

Yo Sie können Entitätsvalidierungsinformationen in eine beliebige validation.yml Datei eingeben. So können Sie

#validation.yml 
FQCN\Of\User\Entity: 
    constraints: 
    - FOS\UserBundle\Validator\Unique: 
     property: usernameCanonical 
     groups: [Profile] 
     message: fos_user.username.already_used 


    properties: 
    # property validations here