我试图尝试从我的数据库中删除用户以及他们的个人资料。现在它只删除users表中的行。这里唯一的区别是user_profiles表被标记为user_id字段,而不是增量字段。该如何实现?这是应该包含在交易中的东西吗?
/**
* Remove the specified resource from storage.
*
* @param int $id id
*
* @return Response
*/
public function destroy($id)
{
$this->userRepository->delete($id);
$this->userProfileRepository->delete($id);
return redirect('users');
}
答案 0 :(得分:2)
是的,您可以使用事务来确保删除这两个记录,但您也可以使用user_id
在user_profiles
表格中为ON DELETE CASCADE
字段创建外键,它将自动删除所以你不需要手动在user_profiles
上运行删除。
例如,在您的迁移文件中,它可能如下所示:
$table->foreign('user_id')->references('id')>on('users')->onDelete('CASCADE');