2016-11-08 4 views
1

Ich habe eine Form gegeben, und wenn ich das Formular mit den richtigen Daten vorlegen geht alles völlig in Ordnung ... aber wenn ich mache absichtlich irgendwelche Fehlerhtmlspecialchars() erwartet Parameter 1 Zeichenfolge zu sein, Array

(Validierung zum Beispiel 'title' => 'required|min:2')

und ich habe nur ein Zeichen für den Titel oder wenn ich ein benötigtes Feld verpassen bekomme ich diesen Fehler:

htmlspecialchars() expects parameter 1 to be string, array given 

enter image description here

Ich habe, dass das Problem mit dieser Auswahlbox

{!! Form::select('item[0][]', $items, null, ['class' => 'form-control', 'required']) !!} 

ist, und ich habe sogar versucht, ohne Form Helfer ein normales Auswahlfeld verwenden heraus {!! !!}

Aber ich bekomme immer noch den gleichen Fehler!

Also das Problem ist irgendwo mit der Validierung, wenn es ein verschachteltes Array gibt ... Gibt es eine Möglichkeit, das zu beheben?

+0

Ist Gibt es einen Grund, warum du deine Auswahlbox 'item [0] []' genannt hast? Kann es nicht einfach "Item" sein? –

+0

Es kann keine einfache Zeichenfolge sein ... ein Benutzer kann sie dynamisch hinzufügen – lewis4u

Antwort

3

OK ich endlich eine Antwort für dieses Problem .... es scheint, als ob etwas in Laravel 5.3 geändert hat und wenn Sie einen Namen mit Array wie diese

{!! Form::label('title', '* Eventname: ', ['class' => 'control-label']) !!} 
{!! Form::text('title[]', null, ['class' => 'form-control', 'required') !!} 

Sie setzen müssen haben wollen [0 ] etwas in Klammern 'Indizes' wie folgt aus:

{!! Form::text('title[0]', null, ['class' => 'form-control', 'required') !!} 

und dann bei der Validierung Verwendung

Titel *

.

für Regel

UPDATE

Weil ich dynamische Form verwenden, die erweitert werden kann und neue Formularfelder hinzugefügt (optional) i erforderlich [] Array-Notation für einen Namen zu setzen, aber eigentlich, wenn Sie bereits hart viele codieren Felder mit dem gleichen Namen wie item [] müssen nicht mit [0] Indizes versehen werden. Die Validierung wird für sie funktionieren.

Das Problem kommt nur, wenn Sie ein einziges Eingabefeld haben und setzen Sie [] Array-Notation entlang der Name zum Beispiel 'item[]'

dies wird den Fehler auslösen, wenn eine Gültigkeitsregel gebrochen ...

Verwandte Themen