Модель
public static function findOrCreate($plan_id, $data)
{
$fromDate = Carbon::now()->subDay()->startOfWeek();
$nowDate = Carbon::now()->today();
$spent_time = static::where('plan_id', $plan_id)->first();
if (is_null($spent_time)) {
return static::create($data);
}else{
$new_spent_time = SpentTime::find($plan_id);
$task_category = $new_spent_time->task_category;
$new_spent_time->task_category = (['{task_category}' => $task_category,
'{daily_spent_time}' => $new_spent_time->daily_spent_time,
'{daily_percentage}' => $new_spent_time->daily_percentage,
'{spent_time}' => $new_spent_time->spent_time,
'{percentage}' => $new_spent_time->percentage, $new_spent_time->task_category]);
$new_spent_time->spent_time = $new_spent_time::where('task_category',$task_category)
->sum('daily_spent_time', $new_spent_time->daily_spent_time , $fromDate);
$new_spent_time['spent_time'] = (int)$new_spent_time->spent_time + $spent_time->daily_spent_time;
$new_spent_time->percentage = $new_spent_time::where('task_category',$task_category)
->sum('daily_percentage', $new_spent_time->daily_percentage, $fromDate);
$new_spent_time['percentage'] = (int)$new_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'));
}
Вид
с проблемами, при сохранении создать новые данные потом ошибка "Попытка получить свойство не объекта"
но есть одни данные, которые могут сохранить при создании новых данных, но пока не могут вычислить данные, и пока другие категории не могут быть такими, вместо этого ошибка
что нужно исправить из этой проблемы?
$new_spent_time
вообще не сохраняется. Вы также создаете обновление какproperties
, так и массиваkeys
. Выбери один. - person thisiskelvin   schedule 19.10.2018where()
. Вы можете запуститьwhere()
для одной записи. - person thisiskelvin   schedule 19.10.2018$task_category = $new_spent_time->task_category;
не является проблемой в вопросе? Я полагаю, что возвращаемое значение$new_spent_time
равно null или чему-то не объектному. Я думаю, вам может понадобиться проверитьif($new_spent_time !== null)
или другие проверки... как насчет этого? - person Oluwatobi Samuel Omisakin   schedule 19.10.2018time and
percentages`, когда это необходимо. Я создам пример для дальнейшего объяснения. - person thisiskelvin   schedule 19.10.2018public function getDailySpentTimeAttribute() { return self::where('task_category', $this->task_category['daily_Spent_time'] == 'daily_spent_time') ->get() ->sum('daily_spent_time'); }
- person Lia nur fadilah   schedule 23.10.2018