Mi formulario como campo users
(tipo de entidad). ¿Cómo puedo agregar validación para especificar que se debe seleccionar al menos un usuario? En realidad estoy añadiendo un detector de eventos, pero yo no sé si esto es una solución de fiar o no:¿Cómo validar una selección de al menos un elemento (o N elementos) en 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));
});
}
Pero el objeto es una colección doctrina en mi caso ... – gremo
va a recuperar los datos en el detector de eventos con los datos '$ = $ event-> getData (); '. No creo que esto sea una colección de doctrinas. ¿Podría mostrar el método 'getDefaultOptions' de la clase de tipo? – Sgoettschkes