Attualmente sto cercando di far funzionare i moduli di symfony con il mio post e di mettere a riposo l'endpoint delle API.Come posso far funzionare i moduli Symfony con un'API REST?
Attualmente ho:
$request = $this->getRequest();
$cc = new CreditCard();
$form = $this->createForm(new CreditCardType(), $cc);
$form->handleRequest($request);
if ($form->isValid()) {
//...
}
Tuttavia, la forma non è mai valida. Esaminando il problema, sembra che il campo isSmditted del modulo sia falso, quindi non passa mai la convalida. Inoltre, poiché questa è una chiamata API, ho csrf_protection impostato su false nel tipo di carta di credito.
Ecco un esempio di quello che i dati che sto avendo l'utente conferma:
{
"credit_card": {
"name" : "Example Name"
...
}
}
Come faccio ad avere questo post/put richiesta di essere registrato come presentato e hanno passare il modulo validatore? Grazie.
Come ho detto prima, la forma del sottoposto il valore è falso. ho messo un'istruzione die nella funzione submit nella classe Form di symfony e il die non è mai stato attivato. Anche la funzione di invio è l'unica cosa in symfony che imposta inviata a true. Il CreditCardType è esattamente come ci si aspetterebbe da un costruttore che aggiunge i campi, getName restituisce 'credit_card', e data_class è impostato sull'entità della carta di credito. –
@DerickF mi dispiace per quello. Ho confuso isSubmitted() con isValid(). Stai postando i tuoi dati come una stringa JSON? Se è necessario analizzare i contenuti della richiesta per decodificare de JSON e quindi utilizzare tale oggetto come dati del modulo. Fatemi sapere se questo è il caso e posso modificare il mio post con la risposta giusta! –
funziona magnificamente! Grazie! –