/** * @param $schedule */ private function _saveSchedule($schedule) { foreach ($schedule as $lineId => $lineSchedule) { $direction = end($lineSchedule)['stopName']; reset($lineSchedule); $publicTransport = PublicTransport::firstOrCreate(['name' => $lineId]); $publicTransport->setAttribute('name', $lineId); $publicTransport->setAttribute('direction', $direction); $publicTransport->save(); foreach ($lineSchedule as $busStop) { $publicTransportStop = PublicTransportStop::firstOrNew(['name' => $busStop['stopName']]); $publicTransportStop->setAttribute('name', $busStop['stopName']); $publicTransportStop->save(); foreach ($busStop['departures'] as $weekDay => $departures) { foreach ($departures as $departure) { $publicTransportSchedule = new PublicTransportSchedule(); $publicTransportSchedule->setAttribute('week_day', $weekDay); $publicTransportSchedule->setAttribute('id_public_transport', $publicTransport->getAttribute('id')); $publicTransportSchedule->setAttribute('id_public_transport_stop', $publicTransportStop->getAttribute('id')); $publicTransportSchedule->setAttribute('departure_datetime', $departure->format('H:i:s')); $publicTransportSchedule->save(); } } } } }