2016-12-29 26 views
0

我有一个叫break的表。这个表格有列[id,AttendanceId,start,end,breakTime,Remarks]。用户可以进行多次休息。所以,这张表可以有一个用户的多个条目。例如:如果我需要3次休息,3次之中前两次是完全休息(即;它有开始和结束时间)。然而,最后一次休息我把开始和直接登录从系统。因此,当前表格将填充2个完整的休息时间和一个不完整的休息时间[注释将显示两个休息时间无效,最后休息时间有效。]。现在,在注销时,我必须计算总工作时间。我正在考虑,然后从减少它的所有中断的总和:[(登录时间 - 退出时间) - 和(从破表中的所有完整的休息时间]如何使用laravel更新某个数据为null的mysql表?

目前,我的代码是不考虑最后一次突破,它只是采取完整的休息总数,并从总时间中扣除它。

所以,我试图更新最后的休息时间结束时间查找活动休息。但我不能这样做。它给我致电(0)null确实是正确的

如何更新空单元格,事实上与标识以便我可以考虑计算总工作时间的所有休息时间。

这里是我的代码:

$OT=Carbon::now('Asia/Kolkata'); 
$getRemarks = TakeBreak::orderBy('Id', 'desc')->where('AttendanceId',Session::get('AttendanceId'))->first(); 
if ($getRemarks->Remarks == "Active"){ 
    DB::table('breaks')->orderBy('Id','desc')->where('Id', Session::get('AttendanceId'))->first() 
             ->update(
              [ 
               'End' => date('H:i:s', mktime(0,$OT)), 
               'Remarks' => "Inavtive" 
              ]) 
        } 
+0

我去掉 - >第一。它现在说mktime()期望参数2很长,给定的对象。 –

回答

0

,您可以尝试如下:

TakeBreak::where('AttendanceId',Session::get('AttendanceId')) 
     ->where('Remarks', 'Active') 
     ->update(
      [ 
       'End' => $OT->format('H:i:s'), 
       'Remarks' => "Inavtive" 
      ] 
     ); 

或者

$getRemarks = TakeBreak::where('AttendanceId',Session::get('AttendanceId')) 
      ->where('Remarks', 'Active') 
      ->orderBy('Id', 'desc') 
      ->first(); 

if ($getRemarks) { 
    $getRemarks->update(
     [ 
      'End' => $OT->format('H:i:s'), 
      'Remarks' => "Inavtive" 
     ] 
    ); 
} 
相关问题