Maison > cadre php > Laravel > le corps du texte

Gérer les formulaires de formulaire avec élégance dans Laravel

藏色散人
Libérer: 2019-10-23 22:59:55
avant
5080 Les gens l'ont consulté

Lors du développement d'applications Laravel, cela implique généralement le traitement de formulaires. Concernant la façon de gérer et de réutiliser avec élégance les formulaires de Laravel, voici une petite expérience de vie :

Utiliser le package de formulaires

Bien qu'écrire du code HTML natif soit effectivement plus lisible, en fait Form Package nous apportera toujours beaucoup de commodité, comme l'utilisation de Form::model() et Form::select().

Imaginez un exemple : nous devons ajouter ou mettre à jour le nom d'utilisateur d'un utilisateur

Nous pouvons concevoir un code et une structure de répertoires similaires à ceci :

// 位于 resources/views/users/edit.blade.php
{!! Form::model($user, ['route' => ['users.update', $user->id], 'method' => 'put']) !!}
    @include('users._form')
    // Your cancel / update buttons
{!! Form::close() !!}
// 位于 resources/views/users/_form.blade.php
<div class="form-group">
    {!! Form::label(&#39;name&#39;, &#39;Name&#39;) !!}
    {!! Form::text(&#39;name&#39;) !!}
</div>
Copier après la connexion

Le HTML généré par le formulaire ci-dessus Le code ressemble probablement à ceci :

<form method="POST" action="http://example.com/users/1" accept-charset="UTF-8">
    <input name="_token" type="hidden" value="Q5oILhAr92pVqfE0ZSSXjSdJuUi09DVSPWweHQlq">
    <input name="_method" type="hidden" value="PUT">
    <div class="form-group"> 
        <label for="name">Name</label>
        <input name="name" type="text" value="Michael">
    </div>
</form>
Copier après la connexion

Notez que dans la méthode Form::model(), nous avons passé la variable $user, ce qui signifie : si $user a une valeur de l'attribut name, le formulaire le fera Cette valeur est automatiquement renseignée sans que nous ayons à l'écrire manuellement.

Le deuxième point est que puisque nous passons $user à Form::model(), nous pouvons utiliser cette petite astuce dans le contrôleur :

class UserController extends Controller
{
    public function create()
    {
        return view(&#39;users.create&#39;, [&#39;user&#39; => new User]);
    }
    public function edit(User $user)
    {
        return view(&#39;users.edit&#39;, [&#39;user&#39; => $user]);
    }
}
Copier après la connexion

Dans ce cas, vous aurez aucun conflit lors de l'édition et de l'ajout. Il existe une valeur de nom lors de l'édition et de la mise à jour, mais il n'est pas nécessaire d'avoir une valeur de nom lors de l'ajout. On peut donc écrire le formulaire entier comme ceci :

// 位于 resources/views/users/_form.blade.php
<div class="form-group">
    <label for="name">Name</label>
    <input type="text" name="name" value="{{ old(&#39;name&#39;, $user->name) }}" class="form-control">
</div>
Copier après la connexion

Et c'est fini !

Enfin

Toujours la même phrase : vous pouvez toujours considérer le Form Package lors du traitement des formulaires, en particulier lorsque vous avez affaire à Form Package.

Pour plus d'articles techniques liés à Laravel, veuillez visiter la colonne Tutoriel d'introduction au framework Laravel pour apprendre !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:codecasts
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal