在增加和减少另一个表上的值之前更新列

问题描述 投票:0回答:1

我对此很陌生,因此请原谅我的编码水平。我有一个小型工作负载分配应用程序。它使我可以在工人之间转移任务。这个想法是一个工人最多只能完成3个任务。因此,我希望能够将一项任务从一名工人转移到另一名工人。在过程中增加和减少它们的数量。

工人表

id |名称| totalTask​​s

任务表

id |标题|说明| worker_id

控制器

public function transferTask(Request $request)
{
 $taskid = $request['taskid'];
 $currentWorker = $request['currentWorker'];
 $newWorker = $request['newWorker'];

 DB::table('tasks')
 ->where('id', $taskid)
 ->update(['user_id' => $newWorker]);

 DB::table('workers')
 ->where('id', $currentWorker)
 ->decrement('totalTasks');

 DB::table('workers')
 ->where('id', $newWorker)
 ->increment('totalTasks');

 return redirect()->back()->with('message', 'Transfer Done');
}

我能够将任务从一个工作人员转移/更新到另一个工作人员,但是我无法更新将其任务从其删除并添加到另一工作人员的工作人员的totalTask​​s。

我需要做些什么来更新currentWorker和totalWorker的totalTask​​s上的计数。任何帮助,将不胜感激。

php laravel laravel-5
1个回答
0
投票

我认为您在列名上有误,应该是这样的:

DB::table('workers')
 ->where('id', $currentWorker)
 ->decrement('total_tasks');

 DB::table('workers')
 ->where('id', $newWorker)
 ->increment('total_tasks');

因为关于documentation,您几乎是正确的

© www.soinside.com 2019 - 2024. All rights reserved.