Laravel est un framework PHP populaire pour développer rapidement des applications Web. Le framework Laravel fournit de nombreuses fonctions et outils puissants, notamment des opérations de base de données, la validation de formulaires, Eloquent ORM, etc. Dans cet article, nous verrons comment implémenter les commandes dans le framework Laravel.
Qu'est-ce qu'une commande ?
Les commandes sont un concept très courant dans le commerce, la restauration, la livraison express et d'autres domaines. Une commande fait référence à des informations sur un client passant une commande pour acheter des biens ou des services via Internet ou d'autres moyens. Une commande contient des informations détaillées sur les biens ou services, le prix, la quantité, l'adresse de livraison, etc. Une fois le service ou le produit terminé, le statut de la commande changera, comme l'achèvement, l'annulation, le remboursement, etc.
Lors du développement de sites Web de commerce électronique ou d'autres types de sites Web, il est très nécessaire de mettre en œuvre un système de commande, car il est lié à l'expérience d'achat de l'utilisateur et à la gestion des commandes du commerçant.
Étapes de base pour implémenter le système de commande
Les étapes de base pour implémenter le système de commande dans le framework Laravel sont les suivantes :
Définir les champs requis pour la commande dans la table de la base de données de commande, tels que le numéro de commande, l'identifiant d'utilisateur, le statut de la commande, le prix total et plus encore. Dans le framework Laravel, vous pouvez utiliser les commandes du script de migration pour créer des tables de base de données, par exemple :
php artisan make:migration create_order_table
Dans le script de migration qui crée la table de commande, définissez les champs et types de champs requis pour la commande, par exemple :
Schema::create('order', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('order_no', 32); $table->integer('user_id'); $table->tinyInteger('status'); $table->decimal('total_price', 8, 2); $table->timestamps(); });
Dans le framework Laravel, vous pouvez utiliser Eloquent ORM pour faire fonctionner la base de données. En définissant un modèle de commande, nous pouvons facilement ajouter, supprimer, modifier et interroger des commandes.
php artisan make:model Order
Dans le modèle Commande, vous pouvez définir le nom de la table, la clé primaire, les champs pouvant être attribués par lots, etc. correspondant à la table de commande.
class Order extends Model { protected $table = 'order'; protected $primaryKey = 'id'; protected $fillable = [ 'order_no', 'user_id', 'status', 'total_price', ]; }
Dans le framework Laravel, les requêtes HTTP peuvent être traitées via le routage. En définissant le routage des commandes, nous pouvons facilement mettre en œuvre des fonctions telles que la soumission de commandes, l'annulation de commandes, etc.
Route::post('/order', 'OrderController@store'); Route::patch('/order/{id}', 'OrderController@update');
Dans l'exemple ci-dessus, nous avons défini les itinéraires de soumission et d'annulation de commande correspondant respectivement aux méthodes de magasin et de mise à jour dans OrderController.
Dans le framework Laravel, la logique métier pertinente peut être encapsulée en créant un contrôleur. En définissant un contrôleur de commandes, nous pouvons facilement ajouter, supprimer, modifier et interroger des commandes.
php artisan make:controller OrderController --resource
Dans OrderController, vous pouvez définir la méthode du magasin pour traiter la logique de soumission de commande.
public function store(Request $request) { $user_id = auth()->user()->id; // 创建订单 $order = Order::create([ 'order_no' => Order::generateOrderNo(), 'user_id' => $user_id, 'status' => Order::STATUS_PENDING, 'total_price' => $request->total_price, ]); // 创建订单商品 foreach ($request->products as $product) { $orderProduct = OrderProduct::create([ 'order_id' => $order->id, 'product_id' => $product['id'], 'quantity' => $product['quantity'], 'price' => $product['price'], ]); } return response()->json([ 'order' => $order, 'order_products' => $order->orderProducts, ], 201); }
Dans l'exemple ci-dessus, nous avons créé le contrôleur OrderController et la méthode store. Le procédé de magasin reçoit un objet Request, obtient des informations de commande et des informations de produit, et crée des commandes et des produits de commande sur la base de ces informations. Enfin, renvoyez les informations de commande créées et les informations sur le produit de la commande.
Définissez les champs requis pour le produit de la commande dans la table de la base de données OrderProduct, tels que l'identifiant de la commande, l'identifiant du produit, le prix, la quantité, etc. Dans le framework Laravel, vous pouvez utiliser les commandes du script de migration pour créer des tables de base de données, par exemple :
php artisan make:migration create_order_product_table
Dans le script de migration qui crée la table des articles de commande, définissez les champs et types de champs requis pour l'article de commande, par exemple :
Schema::create('order_product', function (Blueprint $table) { $table->bigIncrements('id'); $table->integer('order_id'); $table->integer('product_id'); $table->integer('quantity'); $table->decimal('price', 8, 2); $table->timestamps(); });
Dans le framework Laravel, vous pouvez utiliser Eloquent ORM pour faire fonctionner la base de données. En définissant le modèle de produit de commande, nous pouvons facilement ajouter, supprimer, modifier et vérifier les produits de commande.
php artisan make:model OrderProduct
Dans le modèle OrderProduct, vous pouvez définir le nom de la table, la clé primaire, les champs pouvant être attribués par lots, etc. correspondant à la table du produit de la commande.
class OrderProduct extends Model { protected $table = 'order_product'; protected $primaryKey = 'id'; protected $fillable = [ 'order_id', 'product_id', 'quantity', 'price', ]; public function order() { return $this->belongsTo(Order::class); } }
Dans le framework Laravel, vous pouvez utiliser une machine à états pour gérer le statut des commandes. Lors de la mise en œuvre du système de commande, nous pouvons définir le statut de la commande en fonction de différents processus métier et effectuer un transfert de statut dans le modèle de commande.
class Order extends Model { const STATUS_PENDING = 1; const STATUS_PROCESSING = 2; const STATUS_COMPLETED = 3; const STATUS_CANCELLED = 4; const STATUS_REFUNDED = 5; protected $fillable = [ 'order_no', 'user_id', 'status', 'total_price', ]; protected $casts = [ 'status' => 'integer', ]; public function setStatus(int $status) { $this->status = $status; $this->save(); } public function products() { return $this->hasMany(OrderProduct::class); } }
Dans l'exemple ci-dessus, nous avons défini différentes constantes de statut de commande et défini la méthode setStatus dans le modèle de commande pour gérer le transfert de statut. Dans le même temps, nous avons également défini la méthode des produits pour obtenir les informations sur les produits commandés.
Résumé
Pour implémenter le système de commande dans le framework Laravel, vous devez prendre en compte la conception de la structure de la table de commande, la définition du modèle de commande, la définition du routage des commandes, la définition du contrôleur de commande, la gestion du statut des commandes, etc. Si vous souhaitez mieux comprendre la méthode d'implémentation des commandes dans le framework Laravel, vous pouvez vous référer à la documentation officielle de Laravel et à d'autres documents pour continuer à apprendre et à pratiquer.
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!