php - 不能根据同类别的输入正确计算数据
问题描述
模型
public static function findOrCreate($plan_id, $data)
{
$fromDate = Carbon::now()->subDay()->startOfWeek()->toDateString();
$nowDate = Carbon::now()->today()->toDateString();
$spent_time = SpentTime::where('plan_id', $plan_id)->first();
$task_category = $spent_time->task_category;
if (is_null($spent_time)) {
return static::create($data);
}else{
$spent_time->spent_time = SpentTime::where('task_category',$task_category)
->sum('daily_spent_time', $spent_time->daily_spent_time , $fromDate);
$spent_time['spent_time'] = $spent_time->spent_time + $spent_time->daily_spent_time;
$spent_time->percentage = SpentTime::where('task_category',$task_category)
->sum('daily_percentage', $spent_time->daily_percentage, $fromDate);
$spent_time['percentage'] = $spent_time->percentage + $spent_time->daily_percentage;
return $spent_time->update($data);
}
}
新建同类别的数据,输入数据值,应该可以正确计算数据,但这不能
计算与输入值不匹配
解决方案
模型
public static function findOrCreate($plan_id, $data)
{
$spent_time = static::where('plan_id', $plan_id)->first();
$task_category = $spent_time->task_category;
if (is_null($spent_time)) {
return static::create($data);
}else{
$spent_time['spent_time'] = $spent_time->spent_time + $spent_time->daily_spent_time;
$spent_time['percentage'] = $spent_time->percentage + $spent_time->daily_percentage;
return $spent_time->update($data);
}
}
控制器
public function store(Request $request)
{
$spent_time = SpentTime::findOrCreate($request->get('plan_id'), [
'plan_id' => $request->get ('plan_id'),
'daily_spent_time' => $request->get ('daily_spent_time'),
'daily_percentage' => $request->get ('daily_percentage'),
'reason' => $request->get ('reason'),
]);
return redirect()->route('real.index', compact( 'spent_time'));
}
推荐阅读
- r - 一种在 R 中模仿消息传递 OOP 的更节省内存的方法?
- html - 滚动条不起作用,行分成两部分
- loopbackjs - OpenApi 安全性中的 Loopback 4 自定义身份验证
- android - 如何从单个 LiveData 对象中获取值
- java - Ashot - 未正确拍摄元素屏幕截图
- entity-framework-core - EF Core 可选 ValueObject 作为身份
- uwp - 在 WinForm 应用程序中使用 MixedReality.WebRTC.UWP
- python - 查找总观看时间
- output - Ocaml - 意外输出
- javascript - Javascript - 表单提交后的确认对话框