Laravel ialah rangka kerja PHP yang popular untuk membangunkan aplikasi web dengan cepat. Rangka kerja Laravel menyediakan banyak fungsi dan alatan yang berkuasa, termasuk operasi pangkalan data, pengesahan borang, Eloquent ORM dan banyak lagi. Dalam artikel ini, kita akan membincangkan cara melaksanakan pesanan dalam rangka kerja Laravel.
Apakah itu pesanan?
Pesanan adalah konsep yang sangat biasa dalam membeli-belah, katering, penghantaran ekspres dan bidang lain. Pesanan merujuk kepada maklumat tentang pelanggan yang membuat pesanan untuk membeli barangan atau perkhidmatan melalui Internet atau kaedah lain. Pesanan mengandungi maklumat terperinci tentang barangan atau perkhidmatan, harga, kuantiti, alamat penghantaran, dsb. Selepas perkhidmatan atau produk selesai, status pesanan akan berubah, seperti penyiapan, pembatalan, bayaran balik, dsb.
Apabila membangunkan e-dagang atau jenis laman web lain, adalah sangat perlu untuk melaksanakan sistem pesanan, kerana ia berkaitan dengan pengalaman pembelian pengguna dan pengurusan pesanan peniaga.
Langkah asas untuk melaksanakan sistem pesanan
Langkah asas untuk melaksanakan sistem pesanan dalam rangka kerja Laravel adalah seperti berikut:
Tentukan medan yang diperlukan untuk pesanan dalam jadual pangkalan data pesanan, seperti nombor pesanan, ID pengguna, status pesanan, jumlah harga, dsb. Dalam rangka kerja Laravel, anda boleh menggunakan arahan skrip migrasi untuk mencipta jadual pangkalan data, contohnya:
php artisan make:migration create_order_table
Dalam skrip migrasi yang mencipta jadual pesanan, tentukan medan dan jenis medan yang diperlukan untuk pesanan, untuk contoh:
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(); });
Dalam rangka kerja Laravel, anda boleh menggunakan Eloquent ORM untuk mengendalikan pangkalan data. Dengan mentakrifkan model pesanan, kami boleh menambah, memadam, mengubah suai dan menyemak pesanan dengan mudah.
php artisan make:model Order
Dalam model Pesanan, anda boleh menentukan nama jadual, kunci utama, medan yang boleh ditetapkan dalam kelompok, dsb. yang sepadan dengan jadual pesanan.
class Order extends Model { protected $table = 'order'; protected $primaryKey = 'id'; protected $fillable = [ 'order_no', 'user_id', 'status', 'total_price', ]; }
Dalam rangka kerja Laravel, permintaan HTTP boleh diproses melalui penghalaan. Dengan mentakrifkan penghalaan pesanan, kami boleh melaksanakan fungsi dengan mudah seperti menghantar pesanan, membatalkan pesanan, dsb.
Route::post('/order', 'OrderController@store'); Route::patch('/order/{id}', 'OrderController@update');
Dalam contoh di atas, kami menentukan laluan untuk penghantaran pesanan dan pembatalan pesanan yang sepadan dengan kaedah kedai dan kemas kini dalam OrderController masing-masing.
Dalam rangka kerja Laravel, logik perniagaan yang berkaitan boleh dirangkumkan dengan mencipta pengawal. Dengan mentakrifkan pengawal pesanan, kami boleh menambah, memadam, mengubah suai dan menyemak pesanan dengan mudah.
php artisan make:controller OrderController --resource
Dalam OrderController, anda boleh menentukan kaedah kedai untuk memproses logik penyerahan pesanan.
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); }
Dalam contoh di atas, kami mencipta pengawal OrderController dan kaedah stor. Kaedah kedai menerima objek Permintaan, mendapatkan maklumat pesanan dan maklumat produk, dan mencipta pesanan dan memesan produk berdasarkan maklumat ini. Akhir sekali, kembalikan maklumat pesanan yang dibuat dan maklumat produk pesanan.
Tentukan medan yang diperlukan untuk produk pesanan dalam jadual pangkalan data OrderProduct, seperti id pesanan, id produk, harga, kuantiti, dsb. . Dalam rangka kerja Laravel, anda boleh menggunakan arahan skrip migrasi untuk mencipta jadual pangkalan data, contohnya:
php artisan make:migration create_order_product_table
Dalam skrip migrasi yang mencipta jadual item pesanan, tentukan medan dan jenis medan yang diperlukan untuk item pesanan , sebagai contoh:
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(); });
Dalam rangka kerja Laravel, anda boleh menggunakan Eloquent ORM untuk mengendalikan pangkalan data. Dengan mentakrifkan model produk pesanan, kami boleh menambah, memadam, mengubah suai dan menyemak produk pesanan dengan mudah.
php artisan make:model OrderProduct
Dalam model OrderProduct, anda boleh menentukan nama jadual, kunci utama, medan yang boleh ditetapkan dalam kelompok, dsb. yang sepadan dengan jadual produk pesanan.
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); } }
Dalam rangka kerja Laravel, anda boleh menggunakan mesin keadaan untuk mengurus status pesanan. Dalam melaksanakan sistem pesanan, kami boleh menentukan status pesanan mengikut proses perniagaan yang berbeza dan melaksanakan pemindahan status dalam model pesanan.
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); } }
Dalam contoh di atas, kami menentukan pemalar status pesanan yang berbeza dan menentukan kaedah setStatus dalam model pesanan untuk mengendalikan pemindahan status. Pada masa yang sama, kami juga menentukan kaedah produk untuk mendapatkan maklumat produk pesanan.
Ringkasan
Untuk melaksanakan sistem pesanan dalam rangka kerja Laravel, anda perlu mempertimbangkan reka bentuk struktur jadual pesanan, definisi model pesanan, definisi penghalaan pesanan, definisi pengawal pesanan, pengurusan status pesanan, dsb. . Jika anda ingin lebih memahami kaedah pelaksanaan pesanan dalam rangka kerja Laravel, anda boleh merujuk kepada dokumentasi rasmi Laravel dan bahan lain untuk terus belajar dan berlatih.
Atas ialah kandungan terperinci Bagaimana untuk melaksanakan perintah dalam laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!