laravel 模型填充多对多内的附加字段 table

laravel models fill additional field inside many-to-many table

我是 Laravel 框架的新手,正在尝试让我参与其中。 我已经了解如何生成 N:M 关系并在模型中处理它们。现在我问你如何在多对多表中填充一个额外的字段?

例如:

现在我要声明哪个foo用户才是真正的拥有者。 在我看来,N:M Table 存储了此信息而不是 Foo 本身。 那么如何在我的 Foo 和 User 模型中声明这些附加字段呢?

使用 withPivot() 方法可以检索其他字段

return $this->belongsToMany('App\User')->withPivot('is_owner');

使用 sync() 或 attach() 方法尽你所能。

Laravel relations doc

Laravel 在定义 N-M 关系时为我们提供了 pivot 的概念。默认情况下 table 将具有两个连接的键。但是如果你想在那个桥中添加额外的字段 table.

$model->belongsToMany('Model')->withPivot('column1', 'column2');

在上述情况下,您的数据透视表 table 将有两个额外的列,您可以通过以下方式访问这些列:

$model->pivot->column1
$model->pivot->column2