如何编写查询,通过将用户休假天数按用户id相加来获取用户休假的确切详细信息



我正在为考勤管理系统构建一个Laravel项目。在那里,我想在他们的仪表板中显示用户离开的详细信息。

<<p>

离开表/strong>离开表

休假申请表休假申请表

实际上,我想显示用户所有不同类型的休假,用户的休假天数和总休假天数。

<<p>

仪表板控制器/strong>获取休假id

$get_leave_id = LeaveApplication::where('user_id', Auth::user()->id)
->where('statuses_id', 2)
->pluck('leave_id');

从用户获取所有休假细节

$user_leaves = LeaveApplication::with('leave')
->where('statuses_id', '=', 2)
->whereIn('leave_id', $get_leave_id)
->get();

public function leave()
{
return $this->belongsTo(Leave::class, 'leave_id', 'id');
}

视图页面

{{$leave->leave->leave_name}} ==>病假

{{$离开→leave_taken_days }}/{{ $ 离开→离开→total_leave_days}} = =比;4/12

结果我得到

我想要的是这个

Result I want

请帮助建立查询。谢谢你

您可以简化您收集数据的方式如下:

$application = LeaveApplication::with('leave')
->where(['user_id' => Auth::user()->id, 'statuses_id' => 2])
->first();

然后你可以按你喜欢的方式计算数据:

$leave_taken_days = $application->leave->sum('leave_taken_days');
$total_leave_days = $application->leave->sum('total_leave_days');

,在视图中,您可以将变量直接传递给视图并调用它们:$leave_taken_days$total_leave_days

最新更新