Laravel 多个表之间的一对多关系
我试图用中间模型建立产品和品牌模型之间的关系,中间模型还包含一些附加信息,如产品(u)模型等 我的目标是访问所有的产品,属于一个特定的品牌与其他制造商的信息,而且我想访问一个特定的产品与其他信息的品牌 我有一个名为产品的Laravel 多个表之间的一对多关系,laravel,eloquent,Laravel,Eloquent,我试图用中间模型建立产品和品牌模型之间的关系,中间模型还包含一些附加信息,如产品(u)模型等 我的目标是访问所有的产品,属于一个特定的品牌与其他制造商的信息,而且我想访问一个特定的产品与其他信息的品牌 我有一个名为产品的模型,具有这些属性 身份证 名字 sku 数量 等等 另一款型号命名为品牌,具有以下属性 身份证 名字 标志 以及一个中间的模型,名为品牌产品,具有属性 身份证 品牌识别码 产品标识 模型 等等 我正在分别注册品牌和产品,并通过BrandProductModel和pr
模型
,具有这些属性
- 身份证
- 名字
- sku
- 数量
- 等等
型号
命名为品牌,具有以下属性
- 身份证
- 名字
- 标志
模型
,名为品牌产品,具有属性
- 身份证
- 品牌识别码
- 产品标识
- 模型
- 等等
Brand.php
模型包含:
公共功能产品(){
返回$this->hasMany('App\Models\BrandProduct');
}
Product.php
模型包含:
公共功能制造商(){
返回$this->hasOne('App\Models\BrandProduct');
}
和BrandProduct.php
模型包含:
公共函数数据(){
返回$this->belongsTo('App\Models\Product','Product\u id','id');
}
公共功能品牌(){
返回$this->belongsTo('App\Models\Brand','Brand\u id','id');
}
现在我可以通过
$p=Product::find(id)->制造商
但我无法通过尝试获得反向关系BrandProduct>数据
$p=BrandProduct::find(id)->数据
同样,我可以通过
$p=Brand::find(id)->产品
但不能得到相反的关系
$b=BrandProduct::find(id)->brand
最后,我想实现以下目标:
//用于品牌>产品
$p=品牌::查找(id)->产品;
$product_model=$p[0]->model;
$product\U name=$p[0]->数据->名称;
//对于产品>制造商
$p=产品::查找(id)->制造商;
$product\U model=$p->model;
$brand_name=$p->brand->name;
请告诉我我的方法有什么问题,除此之外,所有其他关系都运作良好。一个品牌
是否可以有多个产品
,一个产品
是否可以与多个品牌相关?是的,一个品牌
可以有多个产品
,但一个产品
可以与之相关只有一个品牌
是你的场景是这样的,品牌
苹果有n个产品
[如电视、手机、电脑等]。而你的产品
手机没有品牌
[如苹果、索尼、三星等]。您的中间型号品牌产品
与型号类似(例如:麦金塔、三星Galaxy S8、索尼Bravia)??