gpt4 book ai didi

php - Laravel 5 属于ToMany 的逆

转载 作者:行者123 更新时间:2023-12-02 20:31:29 25 4
gpt4 key购买 nike

实际上不确定我是否做得正确或者还有其他方法。我的数据库中有以下内容

brands
id: integer
name: string
slug: string
description: string
timestamp

products
id: integer
name: string
price: decimal
slug: string
description: string
timestamp

brand_product
id: integer
brand_id: unsignedInteger
product_id: unsignedInteger

基本上,品牌有很多产品,所以我的品牌模型

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

但是,产品具有一 (1) 个品牌模型。很确定我可以通过在我的 products 表上添加 brand_id 并在我的产品模型上执行关系来实现我想要的效果。但是,我有一个上面的数据库结构。我在我的产品模型上做了什么:

...
protected $appends = ['brand'];

public function brand()
{
return $this->belongsToMany(Brand::class);
}

public function getBrandAttribute()
{
return $this->brand()->first();
}
...

最佳答案

您在产品上添加 brand_id 的假设是正确的。您所描述的是一对多关系,而是代表多对多的数据库结构。删除数据透视表并将品牌 ID 添加到产品表中,然后就可以开始了。

// Product model
public function brand()
{
return $this->belongsTo(Brand::class);
}

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

https://laravel.com/docs/5.5/eloquent-relationships#one-to-many

关于php - Laravel 5 属于ToMany 的逆,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48585571/

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