Eröffnen eines neuen HTML -Formulars

Eröffnen eines neuen HTML -Formulars

Problem

Sie möchten ein Formular starten.

Sie wissen, dass Sie die HTML verwenden können

Tag direkt Tag, möchte aber Laravels Formfassade verwenden.

Lösung

Benutze die Form :: Open () Methode.

Normalerweise erfolgt dies in einer Blattvorlage. Es gibt verschiedene Möglichkeiten, diese Methode zu verwenden.

Verwenden von Standardeinstellungen

Form :: open ()

Das produzierte HTML ist.


Dies startet ein Formular mit der Post-Methode zur aktuellen URL und fügt dem Formular ein Accept-charset = "UTF-8" hinzu. Zusätzlich wird ein verstecktes Token hinzugefügt.

Zu einer bestimmten URL

Anstatt eine Aktion zu übergeben, sollten Sie einen URL -Wert bestehen. Dies geschieht in der einzigen Argumentform :: Open () akzeptiert… ein Array.

Form :: Open (Array ('url' => 'http: // full.URL/hier ')

Dies erzeugt die folgende HTML.


Zu einer Route

Anstatt die Aktion weiterzugeben, sollten Sie einen Routenwert an eine Ihrer benannten Routen weitergeben.

Form :: Open (Array ('Route' => 'benannt.Route'))

Wenn die Route nicht vorhanden ist, wird ein Fehler erzeugt. Andernfalls wird das Aktionsattribut des Formulars zur vollständigen URL zur Route.


Zu einer Controller -Aktion

Hier verwenden Sie Aktionen.

Form :: Open (Array ('action' => 'Controller@methode')

Wenn der Controller oder die Methode nicht vorhanden ist, wird ein Fehler erzeugt. Andernfalls wird das Aktionsattribut des Formulars zur vollständigen URL zur Route, die den angegebenen Controller und die angegebene Methode aufruft.


Angabe verschiedener Methoden

Sie können andere Methoden als Post mit Ihren Formularen verwenden. Übergeben Sie die gewünschte "Methode", die Sie im Array -Argument wollen. Gültige Methoden sind 'Get', 'put', 'patch', 'post' oder 'löschen'.

Form :: Open (Array ('Methode' => 'get'))

Dies erzeugt die folgenden HTML.

Beachten Sie, dass es kein Token gibt? Das Token wird nicht für Get -Methoden hinzugefügt.

Sehen Sie sich die Diskussion am Ende dieses Rezepts an, wie Laravel die Methoden -Browser nicht bewältigen können.

Angeben von Dateien -Uploads

Wenn Sie als eines der Array -Argumente ein 'Dateien' => true übergeben, wird das Formular für Datei -Uploads geeignet.

Form :: Open (array ('file' => true))

Das Formular hat nun das Attribut für multipart/form-Data ”EncTePe =”.

engType = "Multipart/Form-Data">

Diskussion

Wie Laravel „Fälschungen“ -Methoden Browser nicht bewältigen können.

Die Formularverfahren, Patch und Löschen können von den meisten Browsern nicht behandelt werden. Laravel macht also die Methode = "Post" und fügt ein verstecktes Feld hinzu.

Form :: Open (array ('method' => 'put')

Dies erzeugt die folgenden.



Das Framework ist klug genug, um diese versteckten Felder zu übersetzen und den Anforderungsart zu ändern, um den gewünschten zu übereinstimmen.