如何添加多对多的额外数据透视列?

Posted

技术标签:

【中文标题】如何添加多对多的额外数据透视列?【英文标题】:How to add many to many extra pivot columns? 【发布时间】:2022-01-16 04:05:45 【问题描述】:

我有两个表 products 和 orders,它们由一个带有每个表的 id 的数据透视表 order_product 链接。但我也想在数据透视表中添加一个 amout 列。我如何使用 laravel Voyager 做到这一点?

【问题讨论】:

【参考方案1】:

只需在 order_product 的迁移文件中定义它,然后从关系函数中访问它,如下所示:

Schema::create('order_product', function (Blueprint $table) 
    $table->unsignedBigInteger('order_id');
    $table->unsignedBigInteger('product_id');
    $table->unsignedInteger('amount');
);

例如在您的产品模型中:

public function orders()

    return $this->belongsToMany(Order::class)
        ->withPivot('amount');

【讨论】:

我的意思是在 Laravel Voyager 里面

以上是关于如何添加多对多的额外数据透视列?的主要内容,如果未能解决你的问题,请参考以下文章

Laravel - 从数据透视表中获取额外的列值

Laravel 5 - 从数据透视表额外属性获取属性

如何使用数据透视查找填充列最多的记录?

多对多数据透视表上的自定义范围

如何对 Eloquent 关系中的数据透视表列进行 GROUP 和 SUM?

Laravel多态多对多关系数据透视表与另一个模型的关系