Ouverture d'un nouveau formulaire HTML

Ouverture d'un nouveau formulaire HTML

Problème

Vous voulez démarrer un formulaire.

Vous savez que vous pouvez utiliser le HTML

Tag directement, mais souhaite utiliser la façade de la forme de Laravel.

Solution

Utilisez le Formulaire :: open () méthode.

Habituellement, cela se fait dans un modèle de lame. Il existe plusieurs façons d'utiliser cette méthode.

En utilisant les défauts

Form :: open ()

Le HTML produit est.


Cela démarre un formulaire, en utilisant la méthode post-post, à l'URL actuelle et ajoutera un accept-charset = ”utf-8" au formulaire. De plus, un jeton caché est ajouté.

À une URL spécifique

Au lieu de passer une action, vous devez passer une valeur d'URL. Cela se produit dans la seule forme d'argument :: Open () accepte… un tableau.

Form :: Open (array ('url' => 'http: // complet.url / ici '))

Cela produit le HTML suivant.


À un itinéraire

Au lieu de passer l'action, vous devez transmettre une valeur d'itinéraire à l'un de vos itinéraires nommés.

Form :: Open (Array ('Route' => 'nommé.itinéraire'))

Si l'itinéraire n'existe pas, une erreur sera produite. Sinon, l'attribut d'action du formulaire devient la pleine URL à l'itinéraire.


À une action de contrôleur

C'est là que vous utilisez l'action.

Formulaire :: open (array ('action' => 'contrôleur @ méthode'))

Si le contrôleur ou la méthode n'existe pas une erreur sera produite. Sinon, l'attribut d'action du formulaire devient l'URL complète de l'itinéraire qui appellera le contrôleur et la méthode spécifiés.


Spécifiant différentes méthodes

Vous pouvez utiliser des méthodes autres que le message avec vos formulaires. Passez la «méthode» que vous voulez dans l'argument du tableau. Les méthodes valides sont «Get», «Put», «Patch», «Post» ou «Delete».

Form :: open (array ('méthode' => 'get'))

Cela produira le HTML suivant.

Remarquez qu'il n'y a pas de jeton? Le jeton n'est pas ajouté pour obtenir des méthodes.

Voir la discussion au bas de cette recette pour la façon dont Laravel «Fakes» les méthodes ne peut pas gérer.

Spécification des téléchargements de fichiers

Si vous passez un «fichiers» => vrai comme l'un des arguments du tableau, le formulaire deviendra adapté aux téléchargements de fichiers.

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

Le formulaire a maintenant l'attribut enctype = ”Multipart / Form Data”.

ENCTYPE = "Multipart / Form-Data">

Discussion

Comment les méthodes Laravel «Fakes» ne peuvent pas gérer.

Les méthodes de formulaire, patch et suppression, ne peuvent pas être gérées par la plupart des navigateurs. Alors ce que Laravel fait, c'est faire du méthode = «post» et ajoute un champ caché.

Form :: open (array ('méthode' => 'put'))

Cela produit ce qui suit.



Le cadre est suffisamment intelligent pour traduire ces champs cachés et modifier le type de demande pour correspondre à ce qui est souhaité.