Does it work if you load it from the service provider?
$pdf = app('dompdf.wrapper');
$pdf->oadview('shop::invoices.pdf.invoice_basic', [
'invoice' => $invoice,
'tenant' => $tenant
]);
return $pdf->output();
When i use this package it works perfectly
in all my models or controllers iwth \PDF::bla ;)
but when i use an Job like this?
he cant find de package/class?
modelfile
<?php
namespace PACKAGE\SHOP\Models;
use Illuminate\Database\Eloquent\Model;
use Laratrust\Traits\LaratrustUserTrait;
use Illuminate\Database\Eloquent\SoftDeletes;
use Carbon\Carbon;
use PACKAGE\BASE\Traits\BelongsToTenant;
use PACKAGE\BASE\Traits\Auditable;
use PACKAGE\BASE\Models\Tenant;
class Order extends Model
{
public static function generatePdfInvoice($id) {
$invoice = Order::findOrFail($id);
$tenant = Tenant::findOrFail($invoice->tenant_id);
$pdf = \PDF::loadview('shop::invoices.pdf.invoice_basic', [
'invoice' => $invoice,
'tenant' => $tenant
]);
return $pdf->output();
}
}
HandleSucceedCharge Job file:
<?php
namespace PACKAGE\SHOP\Jobs;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Illuminate\Support\Facades\Mail;
use Stripe\Charge;
use Stripe\Stripe;
use Spatie\WebhookClient\Models\WebhookCall;
use PACKAGE\SHOP\Mails\newOrderNotification;
use PACKAGE\BASE\Models\Tenant;
use PACKAGE\SHOP\Models\Order;
class HandleSucceededCharge implements ShouldQueue
{
use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;
public $webhookCall;
/**
* Create a new job instance.
*
* @return void
*/
public function __construct(WebhookCall $webhookCall)
{
$this->webhookCall = $webhookCall;
}
/**
* Execute the job.
*
* @return void
*/
public function handle()
{
$Order = Order::whereChargeId($this->webhookCall->payload['data']['object']['id'])->firstOrFail();
\Stripe\Stripe::setApiKey(env('STRIPE_SECRET'));
$Order->order_status = 'PAID';
$Order->payment_status = 'SUCCESS';
$Order->invoice_number = Order::generateInvoice();
$Order->UID = $this->webhookCall->payload['data']['object']['payment_method_details']['ideal']['bank'];
$Order->order_date = date('Y-m-d H:i');
$Order->save();
$pdf = Order::generatePdfInvoice($Order->id);
$Orderitems = $Order->OrderItems();
Mail::to($Order->email)
->bcc(['[email protected]', '[email protected]'])
->attachData($pdf, 'faktuur-' . $Order->id . '.pdf')
->send(new \PACKAGE\SHOP\Mails\NewOrderNotification($Order, $Orderitems));
}
}
Laravel logs says this:
[2020-12-08 09:33:38] local.ERROR: Class 'PDF' not found {"exception":"[object] (Error(code: 0): Class 'PDF' not found at /home/xxxx/domains/xxxx/public_html/lbenz/shop/src/Models/Order.php:55)
[stacktrace]
#0 /home/xxxx/domains/xxxxx/public_html/package/shop/src/Jobs/HandleSucceededCharge.php(55): LBenz\SHOP\Models\Order::generatePdfInvoice()
What Goes wrong here?
Please or to participate in this conversation.