


Créer un formulaire de classement et implémenter le tri des données dans Laravel
Oct 15, 2025 pm 05:12 PMCet article vise à guider les débutants de Laravel dans la création d'un système de classement simple qui permet aux utilisateurs de trier plusieurs éléments et de stocker les résultats du tri dans la base de données. Nous présenterons comment concevoir la structure de la base de données et comment utiliser Eloquent ORM pour lire et trier les données. Grace à cet article, vous ma?triserez les méthodes de base de création et de gestion des données de classement dans les applications Laravel.
Conception de la structure de la base de données
Pour implémenter la fonctionnalité de classement, la table de base de données doit contenir une colonne qui stocke la valeur de tri. Supposons que nous devions classer des appareils tels que des réfrigérateurs, des fours à micro-ondes et des cuisinières. Nous pouvons créer une table appelée appareils avec les champs suivants?:
- id?: clé primaire, ID à incrémentation automatique.
- name?: Nom de l'appareil (par exemple réfrigérateur, micro-ondes, cuisinière).
- description?: Description de l'appareil (facultatif).
- order?:?champ de tri qui stocke les valeurs de classement spécifiées par l'utilisateur. Plus le nombre est petit, plus le classement est élevé.
Cette table peut être créée à l'aide de la fonctionnalité Migration de Laravel?:
utilisez Illuminate\Database\Migrations\Migration?; utilisez Illuminate\Database\Schema\Blueprint?; utilisez Illuminate\Support\Facades\Schema?; la classe CreateAppliancesTable étend la migration { /** * Exécutez les migrations. * * @retour nul */ fonction publique up() { Schema::create('appareils', fonction (Blueprint $table) { $table->id(); $table->string('nom'); $table->text('description')->nullable(); $table->integer('order')->nullable(); // Autorise la valeur null, indiquant qu'il n'a pas encore été trié $table->timestamps(); }); } /** * Inverser les migrations. * * @retour nul */ fonction publique vers le bas() { Schema::dropIfExists('appareils'); } }
Exécutez la commande php artisan migrate pour créer la table.
Tri ORM éloquent
Créez un modèle d'appliance dans le répertoire App\Models pour interagir avec la table des appliances.
espace de noms App\Models?; utilisez Illuminate\Database\Eloquent\Model?; L'appliance de classe étend le modèle { protected $table = 'appareils'; // Facultatif, si le nom de la table est incohérent avec le nom du modèle protected $fillable = ['name', 'description', 'order']; // Champs autorisant l'affectation par lots}
Les données peuvent être triées à l'aide de la méthode orderBy fournie par Eloquent ORM. L'exemple suivant montre comment trier les données par ordre croissant selon le champ d'ordre?:
utilisez App\Models\Appliance?; $appliances = Appliance::orderBy('order', 'asc')->get(); // Ou utilisez la méthode last(), qui est équivalente à orderBy('created_at', 'desc'), mais cet exemple ne s'applique pas // $appliances = Appliance::latest('order')->get(); // Mauvaise utilisation, dernières valeurs par défaut sur create_at
Ce code obtiendra tous les enregistrements de la table des appareils et les triera en fonction de la valeur du champ de commande de petit à grand. Si les valeurs du champ order sont les mêmes, elles sont triées par le champ create_at (comportement par défaut).
Si vous souhaitez trier les données par ordre décroissant selon le champ ordre, vous pouvez utiliser le paramètre desc :
$appliances = Appliance::orderBy('order', 'desc')->get();
Interface utilisateur et mises à jour des données
L'interface utilisateur doit fournir un formulaire permettant à l'utilisateur de trier les appareils. Le formulaire peut inclure une liste déroulante ou une fonction de tri par glisser-déposer qui permet à l'utilisateur de sélectionner le classement de chaque appareil.
Lorsque l'utilisateur soumet le formulaire, les résultats triés doivent être enregistrés dans la base de données. Vous pouvez utiliser la méthode de mise à jour d'Eloquent ORM pour mettre à jour la valeur du champ de commande?:
utilisez App\Models\Appliance?; utilisez Illuminate\Http\Request?; fonction publique updateOrder(Request $request) { $applianceId = $request->input('appliance_id'); $commande = $requête->input('commande'); $appliance = Appliance::find($applianceId); si ($appareil) { $appareil->commande = $commande?; $appliance->save(); } return réponse()->json(['message' => 'Commande mise à jour avec succès']); }
Ce code obtient d'abord les valeurs de appliance_id et order, puis recherche l'enregistrement d'appliance correspondant, met à jour la valeur du champ order et l'enregistre dans la base de données.
Choses à noter?:
- Assurez-vous que l'attribut $fillable est défini dans le modèle d'appliance pour permettre l'affectation par lots du champ de commande.
- Avant que l'utilisateur soumette le formulaire, les données doivent être vérifiées pour garantir que la valeur du champ de commande est valide.
- Afin d'améliorer l'expérience utilisateur, vous pouvez utiliser la technologie AJAX pour soumettre le formulaire de manière asynchrone afin d'éviter l'actualisation de la page.
- Si vous devez implémenter une fonctionnalité de tri plus complexe, envisagez d'utiliser une bibliothèque JavaScript telle que jQuery UI Sortable.
Résumer
Grace à cet article, vous avez appris à créer un formulaire de classement et à implémenter le tri des données dans une application Laravel. Vous avez appris à concevoir une structure de base de données et à lire et mettre à jour des données à l'aide d'Eloquent ORM. Espérons que ces connaissances vous aideront à créer des applications Laravel plus puissantes. N'oubliez pas que la pratique est le meilleur professeur. Essayez-en davantage et vous pourrez ma?triser davantage de compétences Laravel.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Stock Market GPT
Recherche d'investissement basée sur l'IA pour des décisions plus intelligentes

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Usefilter_var () tovalidateemailsyntaxandcheckdnsrr () toverifydomainmxrecords.example: $ email = "user@example.com"; if (f ilter_var ($ e-mail, filter_validate_email) && checkdnsrr (explosage ('@', $ e-mail) [1], 'mx')) {echo "ValidAndDeliverableMail & Qu

UseUnserialize (serialize ($ obj)) FordopcopyingwhenallDataisSerializable; Sinon, implémentez__Clone () TomanuallyDuplicatesedObjectsAndavoidSharedReferences.

UseArray_merge () toCombineArrays, écrasant leduplicatestringKeysAndreIndexingNumericKeys; ForsimplecCaTencatenation, en particulierInphp5.6, usethesplatoperator [... $ array1, ... $ array2].

NamespacesInphporganizEcodeAndPreventnamingConflictsBygroupingClasses, Interfaces, Functions et ConstantsunSunSaspecificName.2.DefineanamespaceusingTheNamesPaceSpaceKeyWordAtTopofaFile, suiviByTheNamesPacename, Suchasapp \ Controlers...USUSEUSEKEYWORDTOI

ToupDateAdatabasereCorDinPhp, FirstConnectUsingPDoOrmysQLi, theNusepreparedStationStoExECUSEASECURSQLUPDATEQUERY.example: $ pdo = newPDO ("MySql: host = localhost; dbname = votre_database", $ username, $ mot de passe); $ sql = "dameussem =.

La méthodiette () méthodiste axée sur le point de réviser la mise en ?uvre de l'inscription, ce qui permet de faire de la maintenance à la qualité de qualité et

Utilisez la classe Ziparchive pour créer un fichier zip. Instancier et ouvrir le zip cible, ajouter des fichiers avec addFile, prendre en charge les chemins internes personnalisés, les fonctions récursives peuvent emballer l'intégralité du répertoire et enfin appeler près pour enregistrer pour s'assurer que PHP a des autorisations d'écriture.

UsePathinfo ($ nom de fichier, pathinfo_extension) togetThefileExtension; itreliabblyHandlesMultipledototsEdGasases, renvoyantTheExtension (par exemple, "pdf") oranemptystringefNoneExists.
