用戶與報表有許多關係。刪除用戶後,我想從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。 –