我正在构建一种人力资源应用程序,其中必须用另一个mysql表的变量减少一个mysql表的变量。
我使用的cmv是laravel,所以我尽量使用db类。
这是第一个表,users:users\u表
第二个表,aanvraags:aanvraags\u表
我想把第一个表中的变量vakantie和第二个表中的变量duur减少。这将发生在休假请求被接受之后。我的控制器中已经有一个函数将变量goedgekeurd从0更改为1。函数如下所示: public function updateNieuw($id){ //update aanvraag $update_aanvraag = DB::table('aanvraags') ->where('id', $id) ->update([ 'goedgekeurd' => 1 //approved by the boss ]);
在同一个函数中,我想用变量duur来减少变量vakantie。
目前,我已经尝试了以下几种方法:
$update_vakantiedag = DB::table('aanvraags')
->select('duur')
->where('id', $id)
->get();
$vakantie = DB::table('users')
->join('aanvraags', 'users.id', '=', 'aanvraags.user_id')
->where('aanvraags.id', '=', $id)
->update([
'users.vakantie' => $update_vakantiedag
]);
所有这些都不能让我有任何收获。大多数情况下,我从第一个表的变量vakantie得到错误或值。
还原过程的发生对于应用是非常重要的。变量vakantie显示每个用户在接受新请求后的剩余假期,并显示在应用程序中。
欢迎任何提示或解决方案!
提前谢谢大家!
2条答案
按热度按时间hvvq6cgz1#
@乔纳斯陶登梅尔非常感谢!我改变了功能,它工作了!
$update_vakantiedag = DB::table('aanvraags') ->select('duur') ->where('id', $id) ->first();
```$verlof = DB::table('users')
->join('aanvraags', 'users.id', '=', 'aanvraags.user_id')
->where('aanvraags.id', '=', $id)
->first();`
ilmyapht2#
使用此选项: