Angepasste Validierungsregeln zu SonataUserBundle hinzufügen

Ich habe SonataUserBundle gemäß der Dokumentation installiert und alles funktioniert einwandfrei. Außer dass ich keine benutzerdefinierten Validierungsregeln hinzufügen kann.

ein Verständnis ist, dass die neuen Regeln zu einer neuen Validierungsgruppe hinzugefügt werden sollten und dann config.yml aktualisiert wird, um SonataUserBundle (oder FosUserBundle) anzuweisen, die neuen Regeln der Validierungssequenz hinzuzufüge

Ich habe das auf verschiedene Arten versucht, aber die neuen Regeln scheinen überhaupt nicht aufgegriffen zu werden ...

Hier ist die Konfiguration, die ich benutze ...

(In diesem Beispiel versuche ich nur, einem neuen foo-Feld eine NotNull-Einschränkung hinzuzufügen. In Wirklichkeit würde ich mir wünschen, dass so viel Arbeit geleistet wird und dann weitere Validierungsregeln hinzugefügt werden.)

Ich habe das Feld foo zu @ hinzugefügApplication\Sonata\UserBundle\Resources\config\doctrine\User.orm.xml und das alles funktioniert gut, das foo Feld zum @ hinzufügUser.php Klasse.

# in Application\Sonata\UserBundle\Resources\config\doctrine\User.orm.xml
...
<field name="foo" type="string" length="100" nullable="true" />
...

n User.php haben wir die Eigenschaft mit ihren Gettern und Setzern:

// In Application\Sonata\UserBundle\Entity\User.php
// ...
/**
 * @var string
 */
private $foo;

/**
 * Set foo
 *
 * @param string $foo
 * @return User
 */
public function setFoo($foo)
{
    $this->foo = $foo;

    return $this;
}

/**
 * Get foo
 *
 * @return string 
 */
public function getFoo()
{
    return $this->foo;
}
// ...

Ich habe dann die neue Validierungsregel zur vorhandenen validation.yml-Datei meines Projekts hinzugefügt:

Application\Sonata\UserBundle\Entity\User:
    properties:
        foo:
            - NotNull: { groups: [CustomGroup] }

(Beachten Sie, dass ich auch versucht habe, eine Datei validation.yml und validation.xml in Application \ Sonata \ UserBundle \ Resources \ config zu erstellen, aber das schien keinen Unterschied zu machen.)

In config.yml sage ich SonataUserBundle, dass meine neue CustomGroup zur Validierung verwendet werden soll:

sonata_user:
    # ...
    profile:
        form:
            validation_groups:  [CustomGroup, Profile, Default]

(Beachten Sie, dass ich auch versucht habe, die Validierungsgruppe auf der Ebene fos_user (@) hinzuzufügefos_user.profile.form.validation_groups: [CustomGroup, Profile, Default]) und Hinzufügen vonsonata_user.profile.register.form.validation_groups: [CustomGroup, Registration, Default], aber ohne Erfolg.)

Und der Vollständigkeit halber ist hier das Feld, das UserAdmin.php hinzugefügt wurde:

// In Application\Sonata\UserBundle\Admin\UserAdmin.php
protected function configureFormFields(FormMapper $formMapper)
{
    $formMapper
        ->with('General')
            // ...
            ->add('foo',        null, array('required' => false))
        ->end()
    ;
}

So ... was habe ich vermisst? Entspricht das UserAdmin-Formular nicht dem Profilformular? (Obwohl ich auch versucht habe, die Einstellungen des Registrierungsformulars zu aktualisieren) Oder stelle ich die Validierungsregeln woanders ein?

Hoffentlich habe ich gerade etwas Kleines verpasst!

Danke im Voraus

C

Antworten auf die Frage(1)

Ihre Antwort auf die Frage