Rumah  >  Artikel  >  rangka kerja php  >  Bagaimana untuk melaksanakan perintah dalam laravel

Bagaimana untuk melaksanakan perintah dalam laravel

PHPz
PHPzasal
2023-04-12 09:04:35896semak imbas

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:

  1. Buat jadual pesanan

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();
    });
  1. Tentukan model pesanan

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',
    ];
}
  1. Buat penghalaan pesanan

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.

  1. Buat pengawal pesanan

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.

  1. Buat jadual 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();
    });
  1. Buat model item pesanan

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);
    }
}
  1. Pengurusan status pesanan

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!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn