【发布时间】:2019-05-28 16:15:31
【问题描述】:
我有 3 张桌子:
- 任务
- 文件夹
- 文件夹任务
Tasks 表将包含所有 task_name,Folder 表将包含 folder_name、task_count 和 Folder Tasks 是一个支点将存储folder_id 和task_id 的表。
所有表都有多对多关系。
我添加了级联删除任务。所以,如果我删除一个任务,那么它将在所有地方删除,包括数据透视表。我正在使用 eloquent delete 删除任务。这工作正常
但是,一旦我删除了一个任务,我需要更新 Folders 表中每个文件夹的任务数。
由于一个任务可以存储在多个文件夹中,因此很难在级联删除的任务中更新所有文件夹的task_count 的计数。我被困在这里了。
如何更新所有task_count 的受影响文件夹?
【问题讨论】:
-
到目前为止你尝试了什么?您删除项目的方法是什么样的?
-
我试图获取所有具有域的文件夹,然后我尝试更新所有返回文件夹 domain_count 但如果我有大量文件夹要更新,这不是正确的方法。所以,寻找更好的解决方案。我尝试以下查询来获取包含该域的所有文件夹。
$task_table = Tasks::find($task_id);$task_table->folders()->wherePivot('task_id','=',$task_id)->get() -
您删除项目的方法是什么样的?
-
这里是删除任务的代码:
Tasks::where('id', $task_id)->delete();。这将在任何地方删除该特定任务,包括包含该任务的文件夹。 -
"包括包含此任务的文件夹" - 关联的文件夹被删除了吗?我不完全明白,我认为需要更新相关文件夹?还是您在谈论数据透视表?