Mein Formular als Feld users
(Entitätstyp). Wie kann ich die Validierung hinzufügen, um so spezifisch zu sein, dass mindestens ein Benutzer ausgewählt werden sollte? Eigentlich Zuhörer ich hinzufüge, ein Ereignis, aber ich weiß nicht, ob dies eine legitime Lösung ist oder nicht:Wie validiere ich eine Auswahl von mindestens einem Element (oder N Elementen) in Symfony 2?
public function buildForm(\Symfony\Component\Form\FormBuilder $builder,
array $options)
{
$builder
->add('title', 'text', array(
'label' => 'Titolo'
))
->add('content', 'textarea', array(
'label' => 'Contenuto'
))
->add('sender_text', 'text', array(
'label' => 'Mittente testuale',
))
->add('users', 'entity', array(
'label' => 'Destinatari',
'class' => 'DL\FidelityBundle\Entity\User',
'property' => 'select_label',
'multiple' => true
));
;
// Valida il numero di utenti selezionati
$builder->addEventListener(\Symfony\Component\Form\FormEvents::POST_BIND,
function($event) {
$form = $event->getForm();
$data = $event->getData();
if(!$data->users->isEmpty()) return;
$msg = 'Occorre specificare almeno un utente destinatario';
$form->get('users')->addError(new FormError($msg));
});
}
Aber die Aufgabe ist eine Lehre Sammlung in meinem Fall ... – gremo
Sie die Daten in Ihrem Ereignis-Listener mit '$ data = $ event-> getData Abrufen (); '. Ich denke nicht, dass das eine Doktrin-Sammlung ist? Können Sie die 'getDefaultOptions' Methode der Typklasse anzeigen? – Sgoettschkes