reference = $reference; $this->order_reference = explode("-", $reference)[0]; if (strpos($reference, "-")) { $this->attendee_reference_index = explode("-", $reference)[1]; } } /** * Execute the job. * * @return void */ public function handle() { $file_name = $this->reference; $file_path = public_path(config('attendize.event_pdf_tickets_path')) . '/' . $file_name; $file_with_ext = $file_path . ".pdf"; if (file_exists($file_with_ext)) { Log::info("Use ticket from cache: " . $file_with_ext); return; } $order = Order::where('order_reference', $this->order_reference)->first(); Log::info($order); $event = $order->event; $query = $order->attendees(); if ($this->isAttendeeTicket()) { $query = $query->where('reference_index', '=', $this->attendee_reference_index); } $attendees = $query->get(); $image_path = $event->organiser->full_logo_path; $images = []; $imgs = $order->event->images; foreach ($imgs as $img) { $images[] = base64_encode(file_get_contents(public_path($img->image_path))); } $data = [ 'order' => $order, 'event' => $event, 'attendees' => $attendees, 'css' => file_get_contents(public_path('assets/stylesheet/ticket.css')), 'image' => base64_encode(file_get_contents(public_path($image_path))), 'images' => $images, ]; PDF::setOutputMode('F'); // force to file PDF::html('Public.ViewEvent.Partials.PDFTicket', $data, $file_path); Log::info("Ticket generated!"); } private function isAttendeeTicket() { return ($this->attendee_reference_index != null); } }