Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Laravel 多个表之间的一对多关系_Laravel_Eloquent - Fatal编程技术网

Laravel 多个表之间的一对多关系

Laravel 多个表之间的一对多关系,laravel,eloquent,Laravel,Eloquent,我试图用中间模型建立产品和品牌模型之间的关系,中间模型还包含一些附加信息,如产品(u)模型等 我的目标是访问所有的产品,属于一个特定的品牌与其他制造商的信息,而且我想访问一个特定的产品与其他信息的品牌 我有一个名为产品的模型,具有这些属性 身份证 名字 sku 数量 等等 另一款型号命名为品牌,具有以下属性 身份证 名字 标志 以及一个中间的模型,名为品牌产品,具有属性 身份证 品牌识别码 产品标识 模型 等等 我正在分别注册品牌和产品,并通过BrandProductModel和pr

我试图用中间模型建立产品品牌模型之间的关系,中间模型还包含一些附加信息,如产品(u)模型

我的目标是访问所有的产品,属于一个特定的品牌与其他制造商的信息,而且我想访问一个特定的产品与其他信息的品牌

我有一个名为产品的
模型
,具有这些属性

  • 身份证
  • 名字
  • sku
  • 数量
  • 等等
另一款
型号
命名为品牌,具有以下属性

  • 身份证
  • 名字
  • 标志
以及一个中间的
模型
,名为品牌产品,具有属性

  • 身份证
  • 品牌识别码
  • 产品标识
  • 模型
  • 等等
我正在分别注册品牌和产品,并通过BrandProductModel和product\u Model等附加属性建立它们之间的关系

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)??