Symfony 2 sollte Dieses Formular nicht enthalten zusätzliche Felder
Ich ein Formular erstellt mit formBuilder
in Symfony. Ich fügen Sie einige basic-styling für die Formular-Eingaben über ein externes stylesheet und verweisen auf die tag-id. Die form macht richtig und Prozesse korrekt ist.
Jedoch, es gibt eine unerwünschte ungeordnete Liste mit einem Listenelement enthält den folgenden text: This form should not contain extra fields.
Ich habe eine wirklich harte Zeit loszuwerden, diese Ankündigung. Ich Frage mich, ob jemand kann mir helfen zu verstehen, warum es gerendert, mit meiner form und wie es zu entfernen?
Vielen Dank im Voraus!
Controller
$form = $this->createFormBuilder($search)
->add('searchinput', 'text', array('label'=>false, 'required' =>false))
->add('search', 'submit')
->getForm();
$form->handleRequest($request);
Zweig-Ausgang (form ausgegeben wird und korrekt verarbeitet
This form should not contain extra fields.
Gerenderten HTML
<form method="post" action="">
<div id="form">
<ul>
<li>This form should not contain extra fields.</li>
</ul>
<div>
<input type="text" id="form_searchinput" name="form[searchinput]" />
</div>
<div>
<button type="submit" id="form_search" name="form[search]">Search</button>
</div>
<input type="hidden" id="form__token" name="form[_token]" value="bb342d7ef928e984713d8cf3eda9a63440f973f2" />
</div>
</form>
Du musst angemeldet sein, um einen Kommentar abzugeben.
Scheint es mir, dass Sie das problem haben, weil der token-Feld. Wenn es so ist, versuchen Sie, fügen Sie Optionen, um createFormBuilder():
Finden Sie die extra-Feld verwenden Sie diesen code im controller, wo Sie die Anfrage:
getExtraData()
bei symfony istFormInterface
helfen könnte.Diese Meldung ist auch dann möglich, wenn Sie die hinzugefügten/geänderten Felder in Ihrem createFormBuilder() und drücken Sie auf refresh in Ihrem browser...
In diesem Fall ist es ok, nach dem Absenden des Formulars wieder 😉
Ich habe die gleiche Nachricht während mehrerer Formen auf der gleichen Seite. Stellt sich heraus, symfony standardmäßig der name 'form' für alle von Ihnen. Anstelle der Verwendung von
createFormBuilder
können Sie ändern den Namen des Formulars, um Konflikte zu vermeiden mitSehen https://stackoverflow.com/a/13366086/1025437 für ein Beispiel.
Lief ich in diese Fehlermeldung beim erstellen eines multi-step form.
Wenn der Schritt 1 Formular gesendet wird, werden $request->request enthält acme_mybundle_myform array. Dieser erstellt einen Validierungsfehler an und hielt die zurück -, vorwärts -, und form-Felder aus füllen richtig. Nicht zu schweigen von "this-form-sollte-nicht-enthalten-extra-fields"
Entdeckte ich diese Dank dem code von nni6.
Die Lösung in meinem Fall war im inneren der Steuerung:
Ich hatte den gleichen Fehler.
Es war, denn ich hatte eine form, die durch Fehler, hatte eine NULL name.
In HTML dem name-Attribut würde dann so Aussehen:
So einfach ist das.
Möglicherweise nicht der Fall für jedermann, aber es lohnt sich zu prüfen.