首页 > 解决方案 > 变量没有在查询中传递值,尽管它包含值

问题描述

 public function Query()
{
    
    $total= User::get('e_id');
  //  dd($total);
    foreach($total as $totals){
     

        [$year, $month] = explode('-', $this->month);
        dd($totals);

        $s= User::whereMonth('date' , $month)->whereYear('date' , $year)->where('e_id' , $totals)->get()->sum('latehours');
        
        dd($s);
    }
  //  dd($totals);

}

在此代码中,变量 $totals 包含“e_id”的值,例如“a-2”,当我 dd($totals) 显示值时,它从表单中获取,例如“a-2”,但是当我将其与“e_id”进行比较时在变量 $s 中显示 sum null(0) of 'latehours' 否则当我直接输入 'a-2' 时,它会针对这个 'e_id' 总结 'latehours' 的记录。这里有什么问题?任何建议。提前致谢。

标签: laravelvariablessumcomparewhere-clause

解决方案


用这个

$s= User::whereMonth('date' , $month)->whereYear('date' , $year)->where('e_id' , $totals->e_id)->get()->sum('latehours');

您正在传递 $totals 对象,条件将其更改为 $totals->e_id


推荐阅读