Sto scrivendo la mia classe CAPTCHA e quando il modulo non convalida, non voglio precompilare l'input captcha con la risposta precedente, per ovvi motivi. Voglio solo cancellare l'input prima che sia reso.Come cancellare il valore del campo con i moduli Symfony2
Ho scoperto l'dati l'opzione è solo per il valore predefinito, che viene sovrascritto da ciò che l'utente inserisce. Ho provato il seguente codice:
$form->get('captcha')->setData(null);
.. Dopo la richiesta è legato con la forma, ma un AlreadyBoundException
viene generata. Ho effettivamente riuscito a farlo funzionare con:
if (isset($formView->children['captcha'])) {
$formView->children['captcha']->vars['value'] = null;
}
Ma che sembra proprio sbagliato, e sicuramente non all'altezza degli standard Symfony. Ho esaminato le altre opzioni che puoi fornire durante la creazione del modulo, ma non riesco a vedere nulla di importante.
Qualcuno ha qualche idea?
A proposito, mi aspetto che Symfony2 venga fornito con una soluzione CAPTCHA, questo è principalmente un esercizio di apprendimento mentre mi abituo al framework.
Come si costruisce il modulo? Direttamente nel tuo controller? Stai usando fullstack o solo il componente del modulo? – Schwierig
Ho l'applicazione Symfony completa. Il modulo ha una propria classe che estende AbstractType, che gestisce l'aggiunta di ciascuno dei campi. – Adam
Puoi pubblicare il codice del tuo tipo? – Schwierig