Aprire un nuovo modulo HTML

Aprire un nuovo modulo HTML

Problema

Vuoi iniziare un modulo.

Sai che potresti usare l'HTML

tagga direttamente, ma vuoi usare la facciata di forma di Laravel.

Soluzione

Usa il Modulo :: open () metodo.

Di solito, questo viene fatto in un modello di lama. Esistono diversi modi per utilizzare questo metodo.

Usando i valori predefiniti

Form :: Open ()

L'HTML prodotto è.


Questo avvia un modulo, usando il metodo post, all'URL corrente e aggiungerà un accettazione = ”UTF-8" al modulo. Inoltre, viene aggiunto un token nascosto.

A un URL specifico

Invece di passare un'azione, dovresti passare un valore URL. Ciò si verifica nell'unico modulo di argomento :: open () accetta ... un array.

Form :: Open (array ('url' => 'http: // full.url/here '))

Questo produce il seguente HTML.


A un percorso

Invece di passare l'azione, dovresti passare un valore per il percorso a una delle vostre rotte nominate.

Form :: open (array ('route' => 'denominata.itinerario'))

Se il percorso non esiste un errore verrà prodotto. Altrimenti l'attributo di azione del modulo diventa l'intero URL sul percorso.


A un'azione controller

Qui è dove usi l'azione.

Form :: Open (array ('action' => 'Controller@Method'))

Se il controller o il metodo non esistono, verrà prodotto un errore. Altrimenti l'attributo di azione del modulo diventa l'URL completo sul percorso che chiamerà il controller e il metodo specificati.


Specificando metodi diversi

Puoi usare metodi diversi da post con i tuoi moduli. Passa il "metodo" che desideri nell'argomento dell'array. I metodi validi sono "get", "put", "patch", "post" o "elimina".

Form :: Open (array ('Method' => 'get')

Questo produrrà il seguente HTML.

Si noti che non c'è segno? Il token non viene aggiunto per i metodi GET.

Guarda la discussione in fondo a questa ricetta per come Laravel "falsi" i browser non possono gestire.

Specifica dei caricamenti di file

Se si passa un "files" => vero come uno degli argomenti dell'array, il modulo diventerà adatto per i caricamenti di file.

Form :: open (array ('files' => true))

Il modulo ora ha l'attributo Enctype = "Multipart/Form-Data".

enctype = "multipart/forma-data">

Discussione

Come i browser di "falsi" di Laravel non possono gestire.

I metodi di forma messi, patch ed elimina non possono essere gestiti dalla maggior parte dei browser. Quindi quello che fa Laravel è rendere il metodo = "post" e aggiunge un campo nascosto.

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

Questo produce quanto segue.



Il framework è abbastanza intelligente da tradurre quei campi nascosti e modificare il tipo di richiesta per abbinare ciò che è desiderato.