首页 文章

Laravel Pivot表id列

提问于
浏览
5

在Laravel和Eloquent中,您可以将ManyToMany-Relations与数据透视表一起使用 . 我的问题是枢轴行的自动ID . 我可以更改ID的生成方式吗?我想在这个问题上使用UUID .

对于其他对象,您可以在模型中实现此行为,但没有枢轴对象的模型 .

我错过了什么?

1 回答

  • 7

    是的,无论您将新记录添加到数据透视表中,无论是通过 attach() 还是 sync() ,都可以为其添加一个键/值数组,以作为第二个参数放入数据透视表中 .

    所以例如 $user->roles()->attach($role, array('id' => $uuid));

    如果您这样做,也可以确保 id 未设置为自动增量 .

    值得注意的是,很多人甚至在其数据透视表上都没有 id 列,因为除非您计划为其创建模型,或者由于某种原因它还包含其他一些外键,因此通常不需要它 . 它通常会有2 .

相关问题