创建实体并在同一操作上附加失败

时间:2017-10-04 20:41:27

标签: php laravel laravel-5 eloquent

我有这段代码:

$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();

,但这需要使用交易。

有比保存两次更优雅的方式吗?

0 个答案:

没有答案