2013-11-27 15 views
5

Ho un modulo incorporato con il composto e le opzioni inherit_data impostate su true.Modulo composto Symfony2, errori associati ai campi

public function buildForm(FormBuilderInterface $builder, array $options) 
{ 
    $builder->setErrorBubbling(false); 

    $builder->add('date_start', 'date', array(
     'label'    => 'form.date_start.label', 
     'widget'   => 'single_text', 
     'required'   => false, 
     'group'    => ['event', 'dates'] 
    )); 

    $builder->add('date_end', 'date', array(
     'label'    => 'form.date_end.label', 
     'widget'   => 'single_text', 
     'required'   => false, 
     'group'    => ['event', 'dates'] 
    )); 

    $builder->add('time_zone', 'alternate_timezone', [ 
     'label'    => 'form.timezone.label', 
     'field_help'  => 'form.timezone.help', 
     'empty_value'  => 'form.timezone.empty_value', 
     'required'   => false, 
     'group'    => ['event', 'dates'] 
    ]); 
} 

/** 
* {@inheritdoc} 
*/ 
public function setDefaultOptions(OptionsResolverInterface $resolver) 
{ 
    $resolver->setDefaults([ 
     'label'  => false, 
     'compound'  => true, 
     'inherit_data' => true 
    ]); 
} 

Non riesco ad associare errori ai miei campi. Gli errori di questo modulo sono visualizzati sul modulo del genitore, non sul campo. Ho visto nel documento, error_bubbling può essere falso a meno che la forma non sia composta.

Qual è la soluzione con un modulo composto, per avere errori associati al campo?

Grazie

+0

ho questo problema con un campo nella mia forma che viene ereditato. Non posso scegliere come target il nome del modulo ereditato nelle mie routine di convalida. L'errore fa sempre riferimento alla forma radice. Nessuna quantità di modifica di error_bubbling o altre impostazioni ha funzionato per me. – lifo

risposta

-1

Con forme composte in Symfony - è possibile definire i vincoli di validazione per ogni entità nel rapporto complesso e gli eventuali errori che si producono durante la convalida sarà visualizzata sopra/vicino gli elementi del modulo in cui si è verificato l'errore.

Ad esempio, se l'esempio di modulo che è stato pubblicato è associato all'entità "ExampleEntity", è possibile definire i vincoli di convalida per tale entità nel validation.yml del pacchetto. Eventuali errori di convalida verranno visualizzati insieme al rispettivo modulo figlio, anche in raccolte in cui potrebbero verificarsi errori di convalida su più moduli figlio.

Esempio src/MyBundle/Resources/config/validation.yml

App\MyBundle\Entity\ExampleEntity: 
     properties: 
      date_start: 
       - NotBlank: 
        message: Date start cannot be blank. 
      date_end: 
       - NotBlank: 
        message: Date end field cannot be blank. 
      time_zone: 
       - NotBlank: 
        message: Timezone cannot be blank. 
Problemi correlati