gpt4 book ai didi

php - Laravel - 只有外键的表模型(数据透视表)

转载 作者:行者123 更新时间:2023-11-29 05:20:58 25 4
gpt4 key购买 nike

我需要为只有两个外键的表实现模型。在我的数据库中,我有这样的表:

product (id_product, ...)
category_to_product (FK id_category, FK id_product)
category (id_category, ...)

如何在 Laravel 中管理这个连接?我应该为合并表实现模型以及它的外观吗? category_to_product 表不代表实体(/模型),只有设计关系属性。

database-model


数据库迁移

类别到产品

Schema::create('category_to_product', function(Blueprint $table)
{
$table->integer('id_category')->unsigned();
$table->foreign('id_category')
->references('id_category')
->on('categories')
->onDelete('cascade');
$table->integer('id_product')->unsigned();
$table->foreign('id_product')
->references('id_product')
->on('products')
->onDelete('cascade');
});

产品

Schema::create('products', function(Blueprint $table)
{
$table->increments('id_product');
// ...
});

类别

Schema::create('categories', function(Blueprint $table)
{
$table->increments('id_category');
// ...
});

最佳答案

@pc-shooter 关于创建方法是正确的。

但是您仍然必须先通过迁移创建数据透视表

Schema::create('products', function(Blueprint $table)
{
$table->increments('id')
$table->string('name');
}
Schema::create('categories', function(Blueprint $table)
{
$table->increments('id')
$table->string('name');
}

然后是你的数据透视表

Schema::create('category_product', function(Blueprint $table)
{
$table->integer('category_id')
$table->foreign('category_id')->references('id')->on('categories');

$table->integer('product_id');
$table->foreign('product_id')->references('id')->on('products');

// And finally, the indexes (Better perfs when fetching data on that pivot table)
$table->index(['category_id', 'product_id'])->unique(); // This index has to be unique
}

关于php - Laravel - 只有外键的表模型(数据透视表),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25861438/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com