Как сделать заголовок и нижний колонтитул уведомления по электронной почте в Laravel динамическими?

Мне удалось передать только динамические данные в тело уведомления по электронной почте, а не в верхний и нижний колонтитулы, поскольку кажется, что это статические шаблоны, в которые нельзя передавать переменные напрямую. Можно ли это вообще сделать? Я хочу настроить заголовок, чтобы он соответствовал каждому клиенту, который получает уведомление по электронной почте.

/**
 * Get the mail representation of the notification.
 *
 * @param  mixed  $notifiable
 * @return \Illuminate\Notifications\Messages\MailMessage
 */
public function toMail($notifiable)
{
    $url = url('/invoice/'.$this->invoice->id);

    return (new MailMessage)
            ->greeting('Hello!')
            ->line('One of your invoices has been paid!')
            ->action('View Invoice', $url)
            ->line('Thank you for using our application!');
}

Как передать дополнительные переменные и получить к ним доступ в верхнем и нижнем колонтитулах шаблона уведомления?

L

Можете ли вы предоставить несколько кодов, чтобы мы могли помочь с вашей проблемой.

Saurabh 11.05.2018 07:48

Привет @ponpon, я отправляю ссылку, пожалуйста, проверьте, помогли ли вы medium.com/@adnanxteam/…. Спасибо

Mayur Panchal 11.05.2018 07:50
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Поиск нового уровня в Laravel с помощью MeiliSearch и Scout
Laravel Scout - это популярный пакет, который предоставляет простой и удобный способ добавить полнотекстовый поиск в ваше приложение Laravel. Он...
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
Освоение архитектуры микросервисов с Laravel: Лучшие практики, преимущества и советы для разработчиков
В последние годы архитектура микросервисов приобрела популярность как способ построения масштабируемых и гибких приложений. Laravel , популярный PHP...
Как построить CRUD-приложение в Laravel
Как построить CRUD-приложение в Laravel
Laravel - это популярный PHP-фреймворк, который позволяет быстро и легко создавать веб-приложения. Одной из наиболее распространенных задач в...
0
2
680
1

Ответы 1

Я нашел способ добиться этого с помощью метода Markdown. В основном вам нужно опубликовать шаблоны электронной почты с помощью команды laravel

php artisan vendor:publish --tag=laravel-notifications

php artisan vendor:publish --tag=laravel-mail

тогда вам нужно получить доступ к своему классу уведомлений и добавить метод уценки, передавая шаблон электронной почты по умолчанию, расположенный в /resources/views/vendor/notifications/email.blade.php, вместе с массивом data [] для с динамическим содержимым.

public function toMail($notifiable) {
    return (new MailMessage)
           ->line('Line of text')
           ->markdown('vendor.notifications.email', [
              'headerTitle' => 'Dynamic header title'
           ]);
}

теперь у вас есть доступ к переменной $ headerTitle внутри файла шаблона email.blade.php

@if (isset($test))
    {{$headerTitle}}
@endif

Знаете ли вы, как передать дополнительные переменные (например, имя клиента) в представления уценки по умолчанию при использовании только методов subject()->line()->action()->line(), а не пользовательского метода представления markdown() в соответствии с вашим ответом?

Lasse 15.06.2020 19:05

Другие вопросы по теме