Maison  >  Article  >  cadre php  >  Gérer les formulaires de formulaire avec élégance dans Laravel

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

藏色散人
藏色散人avant
2019-10-18 14:53:475015parcourir

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>

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>

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]);
    }
}

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>

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer