用户与报表有许多关系。删除用户后,我想从report_user
数据透视表中删除他们所有的报告和数据。 这里是我的delete()
方法:如何在多对多关系中删除关系模型数据以及数据透视表数据?
public function delete(Request $request)
{
$user=User::where('id',$request->id);
if($user)
{
$user->delete();
return response()->json(['status'=>true]);
}
}
手动我可以删除用户报告使用:
foreach($user->reports as $report)
{
$report->delete();
}
如果有什么更好的方法来删除相关的模型数据,我想知道。
根据数据库引擎的不同,您也可以在数据透视表中使用CASCADE操作(ON DELETE CASCADE)中的外键约束。但这不适用于Mysql和MyIsam。 –