Lors du développement du système PHP Mall, les fonctions de classification et de filtrage des produits sont les éléments principaux de l'amélioration de l'expérience utilisateur. Les fonctions de classification et de filtrage des produits raisonnables permettent aux utilisateurs de trouver rapidement des produits qui les intéressent, d'économiser du temps et d'améliorer l'efficacité des achats. Cet article expliquera en détail comment implémenter ces deux fonctions via PHP et fournir des exemples de code pour aider les développeurs à mieux comprendre et appliquer.
Tout d'abord, nous devons créer une table de classification de produits dans la base de données et créer la classe de modèle correspondante au besoin. La table de classification des produits doit contenir au moins les champs suivants: id, nom et parent_id, où l'ID est la clé primaire automatique, le nom est le nom de classification et Parent_id est l'ID parent de la classification.
Voici un exemple de code SQL pour créer une table de classification de produit:
Créer des catégories de table `id` int (11) clé primaire auto_increment non signée, `name` varchar (255) pas nul, `parent_id` int (11) par défaut null, `CREATED_AT` TIMESTAMP NULL NULL NULL, `UPDATED_AT` TIMESTAP NULL NULL NULL ) Moteur = innodb par défaut Charset = utf8;
Ensuite, nous devons créer une classe de modèle appelée catégorie pour manipuler les données de classification des produits dans le code et définir la relation d'association correspondante.
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; class Category extends Model { protected $fillable = ['name', 'parent_id']; public function parent() { return $this-> appartenait (catégorie :: class, 'parent_id'); } fonction publique Enfants () { return $ this-> hasmany (catégorie :: class, 'parent_id'); } }
Dans la page frontale, nous devons afficher les catégories de produits dans une structure d'arbre pour faciliter les utilisateurs pour parcourir et sélectionner les catégories. Voici un exemple de code qui implémente cette fonction:
<?php use App\Models\Category; function displayCategories($categories, $parent_id = 0) { echo '<ul class="category-list"> ';; foreach ($ catégories comme catégorie $) { if ($ category-> parent_id == $ parent_id) { écho '<li> '. $ catégorie-> nom; $ enfants = $ catégorie-> enfants; if (count ($ enfants)> 0) { DisplayCategories ($ enfants, $ category-> id); } écho '</li> ';; } } écho '</ul> ';; } $ catégories = catégorie :: all (); DisplayCategories (catégories $);
La fonction de filtrage des produits peut aider les utilisateurs à trouver rapidement les produits dont ils ont besoin en fonction de leurs besoins personnels. Habituellement, le dépistage des produits implique des conditions d'attribut, telles que la gamme de prix, la couleur, la marque, etc. Nous pouvons collecter les critères de filtrage des utilisateurs via des formulaires et des produits de requête qui répondent aux exigences en fonction des critères.
Voici un exemple de code pour le filtrage des produits:
<?php use App\Models\Product; function getFilteredProducts($filters) { $query = Product::query(); if (isset($filters['price'])) { $query-> WHERBETHEWING ('Price', [$ Filtres ['Price'] ['Min'], $ Filtres ['Price'] ['Max']]); } if (isset ($ filters ['Color'])) { $ query-> où ('couleur', $ filtres ['couleur']); } // ajouter d'autres filtres $ products = $ query-> get (); retourner $ produits; } $ filters = $ _post ['filtres']; // Obtenez les critères de filtre soumis par l'utilisateur $ products = getFilteredProducts ($ filtres); // Obtenez des produits qui répondent aux critères de filtre
Grâce au tutoriel de cet article, vous avez appris à implémenter les fonctions de classification et de filtrage des produits dans le système PHP Mall. La classification et le dépistage raisonnables peuvent non seulement améliorer l'expérience utilisateur, mais aussi aider les utilisateurs à trouver les produits dont ils ont besoin plus rapidement, augmentant ainsi le taux de conversion du centre commercial. J'espère que cet article sera utile pour le développement de votre projet!