1

我有一个多对多的关系,其中数据透视表有大约 20 个附加列。我正在使用自定义数据透视类,并且我已成功设置代码以在关系上访问 ->pivot 属性时返回该类的实例,例如

$supplier->products->pivot返回自定义数据透视类。

但是,当想要访问数据时,我可以在如下belongsToMany关系中手动定义数据透视类(顺便扩展了数据透视)的所有单个属性:

return $this->belongsToMany(Product::class, ['prop1', 'prop2', 'prop3'])

...但是,我怎样才能在不手动定义它们的情况下检索类的所有枢轴数据,因为它将关系声明与类非常接近?这可能吗。如果不是,它将使可维护性成为 PITA!理想情况下,如果 withPivot 有一个标志来获得这一切,那就太好了!

4

1 回答 1

0

在我的情况下,我发现将所有数据分离到单独的表和模型中,并将数据透视表中的外键添加到附加表记录中更容易。这使我可以在 Laravel 中使用“正常”模型处理,这意味着我不必为这样的问题而烦恼!

我的用例是多对多的产品和供应商模式,每个供应商都有自己的产品数据,即价格、库存、运输成本/时间等,所以我将所有这些从枢纽转移到供应商产品型号。

我将把这个问题留在这里,因为虽然这不是问题的直接答案(我担心答案是否定的),但这是一个可行的解决方案,可以节省相当多的编码挫败感!

于 2015-06-28T11:10:33.103 回答