Åpne en ny HTML -skjema

Åpne en ny HTML -skjema

Problem

Du vil starte et skjema.

Du vet at du kan bruke HTML

Tag direkte, men vil bruke Laravels formfasade.

Løsning

Bruke Form :: Open () metode.

Vanligvis gjøres dette i en bladmal. Det er flere måter å bruke denne metoden.

Bruke standardverdier

Form :: Open ()

HTML -produsert er.


Dette starter et skjema, ved å bruke POST-metoden, til den gjeldende URL-en og vil legge til et aksept-charset = ”UTF-8” til skjemaet. I tillegg legges et skjult token lagt til.

Til en bestemt URL

I stedet for å gjøre en handling, bør du passere en URL -verdi. Dette skjer i det eneste argumentform :: Open () godtar ... en matrise.

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

Dette produserer følgende HTML.


Til en rute

I stedet for å gi handlingen, bør du overføre en ruteverdi til en av de navngitte rutene dine.

Form :: Åpne (Array ('Route' => 'Navnet.rute '))

Hvis ruten ikke eksisterer, vil det bli produsert en feil. Ellers blir skjemaets handlingsattributt hele URL -en til ruten.


Til en kontrollerhandling

Det er her du bruker handling.

Form :: Open (Array ('Action' => 'Controller@Method'))

Hvis kontrolleren eller metoden ikke eksisterer, vil det bli produsert en feil. Ellers blir skjemaets handlingsattributt hele URL -en til ruten som vil kalle den spesifiserte kontrolleren og metoden.


Spesifisere forskjellige metoder

Du kan bruke andre metoder enn post med skjemaene dine. Pass 'metoden' du vil ha i array -argumentet. Gyldige metoder er 'Get', 'Put', 'Patch', 'Post' eller 'Delete'.

Form :: Open (Array ('Metode' => 'Get'))

Dette vil produsere følgende HTML.

Legg merke til at det ikke er noe tegn? Tokenet er ikke lagt til for GET -metoder.

Se diskusjonen nederst i denne oppskriften for hvordan Laravel “forfalsker” metodene nettlesere ikke kan håndtere.

Spesifisere filopplastinger

Hvis du passerer en 'filer' => Sann som et av array -argumentene, vil skjemaet bli egnet for filopplastinger.

Form :: Open (Array ('Files' => true))

Skjemaet har nå encTtype = ”Multipart/Form-Data” -attributt.

encType = "Multipart/Form-Data">

Diskusjon

Hvordan Laravel “forfalsker” metoder nettlesere ikke kan håndtere.

Formmetodene som er satt, lapper og sletter, kan ikke håndteres av de fleste nettlesere. Så hva Laravel gjør er å lage metoden = ”innlegg” og legger til et skjult felt.

Form :: Open (Array ('Metode' => 'Put'))

Dette produserer følgende.



Rammeverket er smart nok til å oversette de skjulte feltene og endre forespørselstypen for å matche det som er ønsket.