Maison  >  Article  >  cadre php  >  Comment utiliser ThinkPHP pour implémenter une fonction de panier d'achat

Comment utiliser ThinkPHP pour implémenter une fonction de panier d'achat

PHPz
PHPzavant
2023-05-31 19:04:37703parcourir

Tout d'abord, nous devons créer une base de données pour stocker nos produits et les informations de commande. Copiez et collez le code SQL suivant dans phpMyAdmin ou d'autres clients MySQL pour créer la base de données :

CREATE DATABASE cart DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci ;

Ensuite, nous devons créer deux tables pour stocker les informations sur les produits et les commandes. Les instructions SQL suivantes créent deux tables : "produits" et "commandes" : Produits CRÉER UNE TABLE ( product_id INT CLÉ PRIMAIRE, nom_produit VARCHAR(50), prix DÉCIMAL(10,2) ); Commandes CREATE TABLE ( order_id INT CLÉ PRIMAIRE, id_produit INT, date_de-commande DATE, montant INT, CLÉ ÉTRANGÈRE (product_id) RÉFÉRENCES products(product_id) );

CREATE TABLE products (
 id int(11) NOT NULL AUTO_INCREMENT,
 name varchar(255) NOT NULL,
 description text NOT NULL,
 price float NOT NULL,
 PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE orders (
 id int(11) NOT NULL AUTO_INCREMENT,
 user_id int(11) NOT NULL,
 product_id int(11) NOT NULL,
 quantity int(11) NOT NULL,
 created_at timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
 PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Maintenant, nous devons configurer notre application. Utilisez Composer pour installer le framework ThinkPHP :

composer create-project topthink/think tp5 --prefer-dist

Ensuite, copiez et collez le code suivant dans le fichier tp5/application/common.php. La fonction d'assistance globale "getCart" sera créée pour obtenir les informations sur le panier de l'utilisateur

<?php
use app\index\model\Cart;
function getCart()
{
$user_id = 1; // 此处默认用户ID为1,实际应用中应该从会话中获取用户ID
$cart = Cart::where(&#39;user_id&#39;, $user_id)->select();
return $cart;
}

Ensuite, nous devons créer un modèle appelé "Cart" pour gérer les articles dans le panier de l'utilisateur.

<?php
namespace app\index\model;
use think\Model;
class Cart extends Model
{
protected $table = &#39;orders&#39;;

static function add($product_id, $quantity)
{
    $user_id = 1; // 此处默认用户ID为1,实际应用中应该从会话中获取用户ID
    $order = new Cart();
    $order->user_id = $user_id;
    $order->product_id = $product_id;
    $order->quantity = $quantity;
    $order->save();
}

static function remove($id)
{
    Cart::destroy($id);
}
}

Nous sommes désormais en mesure d'ajouter ou de supprimer des articles du panier dans l'application en utilisant le modèle "Panier". Utilisez le code suivant pour ajouter un article au panier :

Cart::add($product_id, $quantity);

Et le code pour supprimer un article du panier est le suivant :

Cart::remove($id);

Enfin, nous devons créer un panier appelé contrôleur « Cart » et ajoutez deux méthodes : une pour afficher le contenu du panier et une autre pour ajouter des articles au panier.

<?php
namespace app\index\controller;
use app\index\model\Cart;
class CartController extends BaseController
{
public function index()
{
    $cart = getCart();
    $this->assign(&#39;cart&#39;, $cart);
    return $this->fetch();
}

public function add()
{
    $product_id = input(&#39;post.product_id&#39;);
    $quantity = input(&#39;post.quantity&#39;);

    Cart::add($product_id, $quantity);

    $this->success(&#39;添加成功&#39;, url(&#39;index&#39;));
}
}

Après avoir terminé les étapes ci-dessus, nous avons créé avec succès une application simple de panier d'achat. Désormais, nous pouvons afficher le contenu du panier en accédant à la méthode index de CartController et ajouter des articles au panier en accédant à la méthode add de CartController.

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