Otwarcie nowego formularza HTML

Otwarcie nowego formularza HTML

Problem

Chcesz założyć formularz.

Wiesz, że możesz użyć HTML

Tag bezpośrednio, ale chcę użyć fasady formularza Laravel.

Rozwiązanie

Użyj Form :: Open () metoda.

Zwykle odbywa się to w szablonie ostrza. Istnieje kilka sposobów użycia tej metody.

Za pomocą domyślnych

Form :: open ()

Wyprodukowany HTML jest.


To rozpoczyna formularz za pomocą metody post, do bieżącego adresu URL i doda do formularza Accept-Charset = ”UTF-8”. Dodatkowo dodaje się ukryty token.

Do określonego adresu URL

Zamiast przekazać działanie, powinieneś przekazać wartość adresu URL. Dzieje się tak w jedynym formularzu argumentu :: Open () akceptuje… tablicę.

Form :: open (array ('url' => 'http: // pełny.url/tutaj '))

To produkuje następujące HTML.


Na trasę

Zamiast przekazać działanie, powinieneś przekazać wartość trasy do jednej z twoich nazwanych tras.

Form :: open (array ('trasa' => '.trasa'))

Jeśli trasa nie istnieje, zostanie wywołany błąd. W przeciwnym razie atrybut działania formularza staje się pełnym adresem URL trasy.


Do działania kontrolera

Tutaj używasz akcji.

Form :: open (array ('action' => 'controller@metoda'))

Jeśli kontroler lub metoda nie istnieje, zostanie wywołany błąd. W przeciwnym razie atrybut działania formularza staje się pełnym adresem URL trasy, która wywoła określony kontroler i metodę.


Określanie różnych metod

Możesz użyć metod innych niż post z formularzami. Przekaż „metodę”, którą chcesz w argumencie tablicy. Prawidłowe metody to „Get”, „Put”, „Patch”, „Post” lub „Usuń”.

Form :: open (array ('metoda' => 'get'))

Spowoduje to następujące HTML.

Zauważ, że nie ma tokena? Token nie jest dodawany do metod GET.

Zobacz dyskusję na dole tego przepisu na temat tego, jak Laravel „podróbki” Metody nie mogą sobie poradzić.

Określanie przesyłania plików

Jeśli zdasz „pliki” => True jako jeden z argumentów tablicy, formularz stanie się odpowiedni dla przesyłania plików.

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

Formularz ma teraz atrybut encType = ”Multipart/Form-Data”.

enctype = "Multipart/Form-Data">

Dyskusja

Jak nie mogą sobie poradzić, przeglądarki metod Laravel „podróbki”.

Metody Form Methods, Patch i Delete nie mogą być obsługiwane przez większość przeglądarek. Więc Laravel to Method = ”Post” i dodaje ukryte pole.

Form :: open (array ('metoda' => 'put'))

To produkuje następujące.



Framework jest wystarczająco inteligentny, aby przetłumaczyć te ukryte pola i zmienić typ żądania, aby pasował do tego, co jest pożądane.