Maison >développement back-end >tutoriel php >Tutoriel sur les fonctions PHP Mall : implémentation des fonctions de classification et de filtrage des produits

Tutoriel sur les fonctions PHP Mall : implémentation des fonctions de classification et de filtrage des produits

王林
王林original
2023-07-30 23:09:121376parcourir

Tutoriel sur les fonctions PHP Mall : implémentation des fonctions de classification et de filtrage des produits

Lors du développement d'un projet de centre commercial PHP, les fonctions de classification et de filtrage des produits sont essentielles. Grâce à une classification et un filtrage raisonnables, les utilisateurs peuvent facilement trouver et acheter des produits. Cet article présentera en détail comment utiliser PHP pour implémenter des fonctions de classification et de filtrage de produits, et joindra des exemples de code.

  1. Créer une classification des produits

Tout d'abord, nous devons créer un tableau de classification des produits et une classe de modèle correspondante. Le tableau de classification des produits doit contenir au moins les champs suivants : id, name, parent_id. Parmi eux, id est la clé primaire à incrémentation automatique, name est le nom de la catégorie et parent_id est l'ID de la catégorie parent de la catégorie.

Ce qui suit est un exemple de code pour créer une table de classification de produits :

CREATE TABLE `categories` (
  `id` int(11) UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  `name` varchar(255) NOT NULL,
  `parent_id` int(11) DEFAULT NULL,
  `created_at` timestamp NULL DEFAULT NULL,
  `updated_at` timestamp NULL DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Ensuite, créez la classe modèle Category et définissez les relations et méthodes correspondantes. Voici un exemple de code :

<?php

namespace AppModels;

use IlluminateDatabaseEloquentModel;

class Category extends Model
{
    protected $fillable = ['name', 'parent_id'];

    public function parent()
    {
        return $this->belongsTo(Category::class, 'parent_id');
    }

    public function children()
    {
        return $this->hasMany(Category::class, 'parent_id');
    }
}
  1. Afficher les catégories de produits

Sur la première page du centre commercial, nous devons afficher les catégories de produits dans une arborescence pour permettre aux utilisateurs de parcourir et de sélectionner les catégories. Voici un exemple de code :

<?php

use AppModelsCategory;

function displayCategories($categories, $parent_id = 0)
{
    echo '<ul class="category-list">';

    foreach ($categories as $category) {
        if ($category->parent_id == $parent_id) {
            echo '<li>';
            echo $category->name;

            $children = $category->children;

            if (count($children) > 0) {
                displayCategories($children, $category->id);
            }

            echo '</li>';
        }
    }

    echo '</ul>';
}

$categories = Category::all();
displayCategories($categories);
  1. Filtrage des produits

La fonction de filtrage des produits du centre commercial permet aux utilisateurs de trouver rapidement les produits dont ils ont besoin en fonction de leurs besoins. Habituellement, la sélection des produits implique des attributs du produit, tels que le prix, la couleur, etc. Nous pouvons utiliser des formulaires pour collecter les conditions de filtrage des utilisateurs et rechercher des produits qui répondent aux critères en fonction des conditions. Voici un exemple de code :

<?php

use AppModelsProduct;

function getFilteredProducts($filters)
{
    $query = Product::query();

    if (isset($filters['price'])) {
        $query->whereBetween('price', [$filters['price']['min'], $filters['price']['max']]);
    }

    if (isset($filters['color'])) {
        $query->whereIn('color', $filters['color']);
    }

    // 添加其他筛选条件

    $products = $query->get();

    return $products;
}

// 获取用户提交的筛选条件
$filters = $_POST['filters'];

// 调用筛选函数获取符合条件的商品
$products = getFilteredProducts($filters);

Ce qui précède est un tutoriel sur l'utilisation de PHP pour implémenter les fonctions de classification et de filtrage des produits. Grâce à une classification et un filtrage raisonnables, l'expérience utilisateur peut être améliorée et aider les utilisateurs à trouver rapidement les produits dont ils ont besoin. J'espère que cet article vous aidera !

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:
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