с экселя в БД, сделать форму с кнопками "выбрать файл" и "импорт", я это реализовал, но по заданию надо еще, чтобы выходило сообщение "Данные импортируются", в момент импорта в БД, подскажите пожалуйста, каким образом реализовать, чтобы выходило это сообщение?
Выкинуть сообщение в ответе после принятия файла?
это я сделал: return back()->withStatus('Excel file imported successfuly'); а как сделать, чтоб в течении импорта сообщение появлялось?
это задача фронта.
Вебсокеты прикручивать
а что, фронт может определить, что закончился импорт в БД?
нажали на кнопку отправить, сначала показал сообщение jsом, потом отправил файл на сервер😉. получил ответ с сервера - скрыл сообщение. Но по хорошому такое через jobs нужно делать а не в контроллере. Побробуй большой файл загрузить.
я через job и делал. Контроллер только запускает этот job: StoreFertilizerJob::dispatch();
сделай таблицу \ запись в кеше о состоянии загрузки - и переодически обновляй ее из джоба, а с фронта отправляй к ней запросы
а в этой таблице можно еще отслеживать такие статусы импорта, как "ошибка во время импорта" и "данные успешно импортированы" ?
а кто тебе помешает? еще в ней можно кол-во загрженных записей обновлять из фонового процесса
а почему ты тогда с back() возвращаешь successfuly ?
back() указан в job: public function handle() { Excel::import(new FertilizersImport(), public_path('excel/import/fertilizers.xls')); return back()->withStatus('Excel file imported successfuly'); }
А куда редиректит возвращается, понимаешь? Джоба же в фоне отрабатывает
Обсуждают сегодня