Задача достаточно тривиальная, но по причине отсутствия достаточного опыта в Laravel на данном этапе, решил поинтересоваться у знающих.
Что нужно сделать?
Есть приложение, где пользователи выполняют однотипные задачи. Начало работы и ее окончание осуществляются по клику на кнопку. Необходимо нацепить на эти кнопки триггеры для начала работы трекера, который будет засекать время, которое прошло между началом и концом работы. Данные должны храниться в базе с привязкой к конкретному заданию и пользователю, который его делал.
Видел, что многие рекомендуют использовать Vue, но я бы все-таки предпочел обойтись чистым JS, если это не лишено смысла.
Что сделал я?
1. Создал таблицу для таймеров со столбцами 'id', 'task_id', 'user_id', 'started_at' и 'stopped_at', где 'task_id' и 'user_id' - это внешние ключи с соответствующих таблиц.
2. Описал модель Timer, добавил туда все необходимое.
3. Создал контроллер, но не совсем уверен какие именно методы мне нужны в этой ситуации.
Так же интресует, как наиболее правильно реализовать процесс подсчета времени и как передавать это в базу данных.
А в чем проблема? 2 метода, условный Timer start\stop(пауза?). Дата и время окончания по умолчанию Null, после окончания задачи показываете общее затраченное время. До окончания на js определяете разницу между текущим временем и временем начала задачи. Да прибудет с Вами Carbon.
Тогда подскажите еще, пожалуйста, как реализовать метод start в контроллере. Нужно просто в поле начала работы вписать текущее время, которое передаст JS?
Иван Вовчок, никаких передач данных о дате\времени с фронта. JS берёт время из браузера, он из операционной системы.(можно будет из 2002 создать задачу).
Carbon::now() текущую дату\время сервера