📜  我们如何在 laravek 中管理类别和产品 (1)

📅  最后修改于: 2023-12-03 15:39:38.450000             🧑  作者: Mango

如何在 Laravel 中管理类别和产品

在 Laravel 中,管理类别和产品是一个非常常见的需求。本文将介绍如何在 Laravel 中使用 Eloquent 或 Query Builder 来处理类别和产品。

准备工作

在开始之前,我们需要确保已经完成以下准备工作:

  1. 安装好 Laravel。
  2. 创建好数据库并设置好相关配置信息。
  3. 定义好类别和产品的模型。
定义模型

在 Laravel 中,我们可以使用 Artisan 命令来生成模型:

php artisan make:model Category
php artisan make:model Product

生成的模型文件在 app/Models 目录下,打开这些文件并根据你的表结构进行定义。例如,以下是一个示例的 Category 模型:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

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

    public function products()
    {
        return $this->hasMany(Product::class);
    }
}

其中,$fillable 属性表示可以进行赋值的字段,products() 方法表示 Category 模型下有多个 Product 模型。

创建数据表

在定义好模型后,我们需要创建数据表。在 Laravel 中,我们可以通过迁移来创建和修改数据表。生成迁移文件的命令为:

php artisan make:migration create_categories_table --create=categories
php artisan make:migration create_products_table --create=products

生成的迁移文件在 database/migrations 目录下,打开这些文件并根据你的表结构进行定义。例如,以下是一个示例的 Category 迁移文件:

<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreateCategoriesTable extends Migration
{
    public function up()
    {
        Schema::create('categories', function (Blueprint $table) {
            $table->id();
            $table->string('name')->unique();
            $table->text('description')->nullable();
            $table->timestamps();
        });
    }

    public function down()
    {
        Schema::dropIfExists('categories');
    }
}
插入数据

在定义好模型和数据表后,我们需要向数据表中插入数据。我们可以使用 Eloquent 或 Query Builder 来进行插入操作。例如,使用 Eloquent 执行以下操作:

$category = new Category;

$category->name = 'Books';
$category->description = 'All kinds of books.';

$category->save();

使用 Query Builder 执行以下操作:

DB::table('categories')->insert([
    'name' => 'Books',
    'description' => 'All kinds of books.',
]);
查询数据

在插入数据后,我们可以使用 Eloquent 或 Query Builder 来进行查询操作。例如,使用 Eloquent 查询所有类别和其所有产品:

$categories = Category::with('products')->get();

使用 Query Builder 查询所有类别和其所有产品:

$categories = DB::table('categories')
    ->join('products', 'categories.id', '=', 'products.category_id')
    ->select('categories.*', 'products.name as product_name', 'products.price')
    ->get();
更新数据

在查询到数据后,我们可以使用 Eloquent 或 Query Builder 来进行更新操作。例如,使用 Eloquent 更新类别的名称:

$category = Category::find(1);

$category->name = 'New Name';

$category->save();

使用 Query Builder 更新类别的名称:

DB::table('categories')
    ->where('id', 1)
    ->update(['name' => 'New Name']);
删除数据

在更新数据后,我们可以使用 Eloquent 或 Query Builder 来进行删除操作。例如,使用 Eloquent 删除指定类别及其所有产品:

$category = Category::find(1);

$category->products()->delete();

$category->delete();

使用 Query Builder 删除指定类别及其所有产品:

DB::table('categories')
    ->where('id', 1)
    ->delete();

本文介绍了如何在 Laravel 中管理类别和产品,包括定义模型、创建数据表、插入数据、查询数据、更新数据和删除数据。我们可以使用 Eloquent 或 Query Builder 来实现这些操作,以满足不同的需求。