laravel 如何在一对多关系中将条目从一个项目移动到另一个项目,而不使用“附加”方法?

r3i60tvu  于 2023-08-08  发布在  其他
关注(0)|答案(1)|浏览(77)

我有一个数据库模式,其中一个项目可以有许多条目,每个条目只属于一个项目(一对多关系)。我正在尝试使用Laravel Eloquent将条目从一个项目移动到另一个项目,而不使用“attach”方法。
下面是我目前为止的代码:

if ($request->projectToMergeEntries) {
    $projectToMerge = Project::findOrFail($request->projectToMergeEntries['id']);
    $projectToMerge->workLog()->attach($project->workLog->pluck('id'));
    $project->workLog()->detach();
}

字符串
然而,我一直面临着这种方法的一些问题,我不知道如何达到预期的结果。
有人能指导我如何在一对多关系中正确地将条目从一个项目移动到另一个项目,而不使用“附加”方法吗?任何替代的解决方案或解释我可能做错了什么将不胜感激。

von4xj4u

von4xj4u1#

由于您是$projectdetaching,因此我假设您希望将工作日志从一个项目移动到另一个项目。由于每个工作日志都属于一个项目,因此我们需要做的就是将工作日志的project_id字段更新为$targetProject->id

if ($request->projectToMergeEntries) {
  $projectToMerge = Project::findOrFail($request->projectToMergeEntries['id']);
 
  WorkLog::query()
    ->where('project_id', $project->id)
    ->update(['project_id' => $projectToMerge->id]);
}

字符串

相关问题