我有这段代码:
$entity = new Role();
$data = $request->json()->all();
$entity->fill($data);
foreach ($data['permissions'] as $permission) {
$entity->perms()->attach($permission['id']);
}
$entity->save();
这是一个完整性约束失败,因为似乎attach在role_id上设置为null。 role.id是increments
列。
当然我可以在foreach
之前移动保存并在此之后再次保存实体:
$entity = new Role();
$data = $request->json()->all();
$entity->fill($data);
$entity->save();
foreach ($data['permissions'] as $permission) {
$entity->perms()->attach($permission['id']);
}
$entity->save();
,但这需要使用交易。
有比保存两次更优雅的方式吗?