gpt4 book ai didi

Mysql 表关系 - 迁移 LARAVEL

转载 作者:行者123 更新时间:2023-11-30 22:13:41 24 4
gpt4 key购买 nike

我正在用 laravel 创建我的迁移,我有这个疑问:

我有这两个表:

Cars: ID || || BRAND_NAME || MODEL || YEAR

Brand: ID || NAME

所以,如果我想将 Brand ID 保存在我的表 Cars 中,我会使用类似的东西:

$table->integer('brand_id')->unsigned();
$table->foreign('brand_id')->references('id')->on('brand');

所有信息都保存在一个表单中,现在可以使用了。但是如果我想在我的 Cars 表中保存 BRAND_NAME 而不是 BRAND_ID 。这是可能的?我该怎么做?

最佳答案

如果你正在观察类似的东西:

$table->string('BRAND_NAME');
$table->foreign('BRAND_NAME')->references('NAME')->on('brand');

那么答案是否定的,除非你在品牌中的名称字段被编入索引。

我相信,如果您在 Cars 表上使用品牌 ID,那么存储名称是没有用的,但我认为唯一的方法是在保存汽车型号之前查询以获取品牌名称,有些东西喜欢:

$car = new Car;
$car->brand_id = 1;
$car->brand_name = Brand::find(1)->name;
$car->save();

您可以保持模型不变,并在 Car model 中使用 hasOne 关系,这样您就可以获得每个车型的所有品牌真实数据。为此,您只需要在汽车模型类中添加一个方法,例如:

public function brand()
{
return $this->belongsTo('App\Car'); //<--- Put your car model path there
}

有了它,您可以通过以下方式检索包含所有相关品牌数据的汽车型号:

$user = User::where("id", "=", 1)->with("brand")->first();

https://www.laravel.com/docs/5.3/eloquent-relationships 中查看有关关系的更多信息

关于Mysql 表关系 - 迁移 LARAVEL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39195858/

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