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