在Laravel和Eloquent中,您可以将ManyToMany-Relations与数据透视表一起使用.我的问题是枢轴行的自动ID.我可以更改ID的生成方式吗?我想在这个问题上使用UUID.
对于其他对象,您可以在模型中实现此行为,但没有枢轴对象的模型.
我错过了什么?
是的,无论您将新记录添加到数据透视表中,还是通过attach()
或sync()
,都可以为其提供一个键/值数组,以作为第二个参数放入数据透视表中.
所以举个例子 $user->roles()->attach($role, array('id' => $uuid));
如果您这样做,也可以确保id
未设置为自动增量.
也许重要的是要注意很多人甚至没有id
在他们的数据透视表上有一个列,因为除非你打算为它创建一个模型,或者由于某种原因它还包含一些其他外键,所以通常不需要它.它通常会有.