总代理商表- id产品表- id总代理商控制表- distributor_id,product_id
总代理商模型-
public function product() { return $this->hasMany(Distributorproduct::class); }
产品型号-
public function distributor() { return $this->hasMany(Distributorproduct::class); }
分销商产品模型-
public function distributor() { return $this->belongsTo(Distributor::class); }
public function product() { return $this->belongsTo(Product::class); }
如果我写$product->distributor
,那么它会给我分销商产品的所有细节,但我需要分销商的详细信息,而不是分销商产品的详细信息。
如果我写$distributor->product
,那么它会给我分销商产品的所有细节,但我需要的是产品的细节,而不是分销商产品的细节。
先谢谢你...
发布于 2020-02-05 16:12:07
我不清楚产品、产品和分销商之间的关系是什么,但我认为您想要的是指定分销商和产品(以及产品->分销商)之间的一种不同的关系。在您的Distributor模式类中,您可以尝试像这样定义产品方法:
public function product() {
return $this->hasOneThrough(Product::class, Distributorproduct::class);
}
Product模式类中的分发者方法如下所示:
public function distributor() {
return $this->hasOneThrough(Distributor::class, Distributorproduct::class);
}
但您的里程数可能会有所不同,只有当一个产品只有一个分销商(可能),而一个分销商只有一个产品(我猜不太可能)时,这种关系才是可以的。
Laravel文档中有非常好的关于relationships的文档。特别是在中,有一个通过,而有许多通过段落。
https://stackoverflow.com/questions/60070469
复制相似问题