Ich habe SonataUserBundle nach den Dokumenten installiert und alles funktioniert gut. Nur dass ich keine benutzerdefinierten Validierungsregeln hinzufügen kann.Hinzufügen von benutzerdefinierten Validierungsregeln zu SonataUserBundle
Ich verstehe, dass die neuen Regeln zu einer neuen Validierungsgruppe hinzugefügt werden sollen und dann config.yml aktualisiert wird, um SonataUserBundle (oder FosUserBundle) mitzuteilen, dass die neuen Regeln zur Validierungssequenz hinzugefügt werden sollen.
ich dies versucht haben, auf verschiedene Weise, aber die neuen Regeln scheinen einfach nicht gar abgeholt zu werden ...
Hier ist die Konfiguration Ich verwende ...
(Um dieses Beispiel zu verwenden, versuche ich nur, einem neuen foo-Feld eine NotNull-Einschränkung hinzuzufügen. In Wirklichkeit würde ich gerne so viel Arbeit sehen und dann weitere Validierungsregeln hinzufügen.)
Ich habe das foo hinzugefügt Feld zu Application\Sonata\UserBundle\Resources\config\doctrine\User.orm.xml
und das alles funktioniert gut, Hinzufügen der Foo-Feld in die User.php
Klasse.
# in Application\Sonata\UserBundle\Resources\config\doctrine\User.orm.xml
...
<field name="foo" type="string" length="100" nullable="true" />
...
In User.php haben wir das Hotel mit seinen Getter und Setter:
// 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 hinzugefügt, dann die neue Gültigkeitsregel zu meinem Projekt bestehenden validation.yml Datei:
Application\Sonata\UserBundle\Entity\User:
properties:
foo:
- NotNull: { groups: [CustomGroup] }
(Beachten Sie, dass ich auch versucht habe, eine Datei namens validation.yml und validation.xml in Application \ Sonata \ UserBundle \ Resources \ config zu erstellen, aber das schien keinen Unterschied zu machen.)
In config.yml ich SonataUserBundle sagen meine neue CustomGroup für die Validierung zu verwenden:
sonata_user:
# ...
profile:
form:
validation_groups: [CustomGroup, Profile, Default]
(Beachten Sie, dass ich auch die Validierungsgruppe an der fos_user Ebene versucht haben, das Hinzufügen (fos_user.profile.form.validation_groups: [CustomGroup, Profile, Default]
) und das Hinzufügen in sonata_user.profile.register.form.validation_groups: [CustomGroup, Registration, Default]
, aber . ohne Erfolg)
Und der Vollständigkeit halber, hier hinzugefügt das Feld UserAdmin.php:
// In Application\Sonata\UserBundle\Admin\UserAdmin.php
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->with('General')
// ...
->add('foo', null, array('required' => false))
->end()
;
}
Also ... was habe ich verpasst? Ist das Formular UserAdmin nicht das gleiche wie das Formular 'Profil'? (Obwohl ich auch versucht habe, die Registrierungsformulareinstellungen zu aktualisieren) Oder setze ich die Validierungsregeln woanders ein?
Hoffentlich habe ich gerade etwas Kleines verpasst!
Vielen Dank im Voraus,
C
Ich muss hinzufügen, eigentlich das gleiche Problem. Ich habe eine Reihe verschiedener "Lösungen" ausprobiert, die ich finden konnte, aber nichts funktioniert. Konntest du etwas herausfinden? –
Das gleiche Problem für mich. Hier ein Ticket erstellt: https://github.com/sonata-project/SonataUserBundle/issues/611 –
Wenn Ihre Anwendung \ Sonata \ UserBundle \ Resources \ config \ validation.yml (oder XML) einen Fehler enthält, beschweren Sie sich über die Anwendung darüber? –