initialized = true; return $this; } public function initByToken(string $token) { parent::initByToken($token); $this->customOrder = ReceiptIssuingHTParkingCustomOrder::whereReceiptIssuingOrderId($this->order->id)->firstOrFail(); return $this; } public function initById(string $id) { parent::initById($id); $this->customOrder = ReceiptIssuingHTParkingCustomOrder::whereReceiptIssuingOrderId($this->order->id)->firstOrFail(); return $this; } /** * @param Collection $list */ public function downlaodLetters(Collection $list) { $data = []; foreach ($list as $ele) { $data[] = $this->getPDFData($ele); } $pdf = PDF::loadView('pdf/receipt_letters', [ 'orders' => $data ]); // はがきサイズを指定 $ret = $pdf->setOption('page-height', 148) ->setOption('page-width', 100) ->setOption('encoding', 'utf-8') ->inline(); return $ret; } protected function getPDFData(?ReceiptIssuingOrder $order = null) { $p = parent::getPDFData($order); if ($order !== null) { $c = ReceiptIssuingHTParkingCustomOrder::whereReceiptIssuingOrderId($order->id)->firstOrFail()->toArray(); } else { $c = $this->customOrder->toArray(); } return [ ...$p, ...$c, ]; } }