РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
826 of 1392 menu

Метод content

Метод content применяется в классе Mailable для указания представления (view) и данных, которые будут использоваться при формировании тела письма. Метод возвращает массив с ключами 'view' (основное представление), 'text' (текстовая версия) и 'with' (данные для передачи в представление). Первый параметр определяет HTML-шаблон письма, второй - текстовую версию, третий - ассоциативный массив данных.

Синтаксис

<?php use Illuminate\Mail\Mailable; class ExampleMail extends Mailable { public function content() { return $this->view('emails.example', [ 'data' => $this->data, ]); } } ?>

Пример

Давайте создадим класс Mailable для отправки приветственного письма пользователю:

<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Envelope; use Illuminate\Queue\SerializesModels; class WelcomeMail extends Mailable { use Queueable, SerializesModels; public $userName; public function __construct($userName) { $this->userName = $userName; } public function envelope() { return new Envelope( subject: 'Welcome to our site', ); } public function content() { return new Content( view: 'emails.welcome', with: [ 'userName' => $this->userName, ], ); } } ?>

Пример

Использование текстовой версии письма вместе с HTML-версией:

<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Envelope; use Illuminate\Queue\SerializesModels; class OrderConfirmation extends Mailable { use Queueable, SerializesModels; public $orderNumber; public $amount; public function __construct($orderNumber, $amount) { $this->orderNumber = $orderNumber; $this->amount = $amount; } public function envelope() { return new Envelope( subject: 'Order Confirmation #' . $this->orderNumber, ); } public function content() { return new Content( view: 'emails.order-confirm', text: 'emails.order-confirm-text', with: [ 'orderNumber' => $this->orderNumber, 'amount' => $this->amount, ], ); } } ?>

Пример

Отправка письма с использованием метода content:

<?php namespace App\Http\Controllers; use App\Mail\WelcomeMail; use Illuminate\Support\Facades\Mail; class UserController extends Controller { public function register() { $userName = 'John Doe'; Mail::to('user@example.com')->send(new WelcomeMail($userName)); echo "Email sent successfully"; } } ?>

Результат выполнения кода:

"Email sent successfully"

Пример

Использование метода content с передачей коллекции данных:

<?php namespace App\Mail; use Illuminate\Bus\Queueable; use Illuminate\Mail\Mailable; use Illuminate\Mail\Mailables\Content; use Illuminate\Mail\Mailables\Envelope; use Illuminate\Queue\SerializesModels; class ProductsListMail extends Mailable { use Queueable, SerializesModels; public $products; public function __construct($products) { $this->products = $products; } public function envelope() { return new Envelope( subject: 'Available Products', ); } public function content() { return new Content( view: 'emails.products', with: [ 'products' => $this->products, 'count' => count($this->products), ], ); } } ?>

Смотрите также

  • метод envelope,
    который определяет заголовки письма
  • метод attachments,
    который добавляет вложения к письму
  • метод with,
    который передает данные в представление письма
  • метод attach,
    который добавляет вложение из файловой системы
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить