用户有很多任务,id在任务表中添加外键引用用户,如果我想删除用户,我想删除该用户的所有任务,我在控制器中执行此操作
task::where('user_id',$user_id)->delete();
user::where('id',$user_id)->delete();
但是还有另一种说法
public function tasks()
{
return $this->hasMany('App\Task');
}
在控制器中:
$user = User::find($id);
$user->tasks()->delete();
$user->delete();
其中一种方法的性能优于另一种方法吗???
什么比较好?????????????
为了获得更好的性能,请使用 onDeleteCascade,它允许数据库自动执行此操作。您可以将其添加到迁移文件中。完成后只需删除用户,他的任务就会自动删除
任务迁移中
$table->foreignId('user_id')->constrained('users')->cascadeOnDelete();