У версії laravel-pdf v2.6.0 від Spatie з’явилася підтримка контракту Attachable для PdfBuilder. Відтепер згенеровані PDF-файли можна передавати безпосередньо в метод attach() у mailable-класах або сповіщеннях без попереднього збереження на диск.
Оскільки PdfBuilder тепер реалізує інтерфейс Illuminate\Contracts\Mail\Attachable, його можна використовувати всюди, де Laravel очікує об’єкт для вкладення. Назва файлу підтягується з методу name() (розширення .pdf додається автоматично), а MIME-тип application/pdf встановлюється за замовчуванням.
Ось як це виглядає у сповіщенні:
use Illuminate\Notifications\Messages\MailMessage;
use Spatie\LaravelPdf\Facades\Pdf;
public function toMail(object $notifiable): MailMessage
{
$pdf = Pdf::view('pdfs.invoice', ['invoice' => $this->invoice])
->name('invoice.pdf');
return (new MailMessage)
->subject('Your invoice')
->line('Please find your invoice attached.')
->attach($pdf);
}
Приклад використання у mailable через метод attachments():
use Illuminate\Mail\Mailable;
use Spatie\LaravelPdf\Facades\Pdf;
class InvoiceMail extends Mailable
{
public function __construct(public Invoice $invoice) {}
public function attachments(): array
{
return [
Pdf::view('pdfs.invoice', ['invoice' => $this->invoice])
->name('invoice.pdf'),
];
}
}
Модельний контекстний протокол (MCP) відкриває нові горизонти в інтеграції AI-додатків з PHP. Дізнайтеся, як легко створити сервер, що відповідає MCP, та які можливості відкриваються для вашого проєкту
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення
Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!