Я создаю шаблон письма на основе опубликованных файлов, которые вы получаете php artisan vendor:publish --tag=laravel-notifications
И я успешно отредактировал макет сообщения, включив в него сообщение Powered by, однако в этом фрагменте не используется переменная.
Теперь я застрял, пытаясь добавить уникальный URL-адрес отказа от подписки чуть выше (см. рисунок ниже) этого питания, но я не могу передать его «вверх» в шаблон поставщика message.blade.php
Это часть моей функции toMail() из уведомления, которая в конечном итоге вызывается функцией $user->notify(new Reminder(..)).
return (new MailMessage())
->markdown('emails.reminder', ['unsubscribe_url' => 'custom_url_here'])
Это отредактированный message.blade.php файл
<x-mail::layout>
{{-- Body --}}
{{ $slot }}
{{-- Subcopy --}}
@isset($subcopy)
<x-slot:subcopy>
<x-mail::subcopy>
{{ $subcopy }}
</x-mail::subcopy>
</x-slot:subcopy>
@endisset
{{-- Footer --}}
<x-slot:footer>
<x-mail::footer>
<a href = "{{ $unsubscribe_url }}">Unsubscribe here.</a>
</x-mail::footer>
<x-mail::powered-by />
<x-mail::footer>
© {{ date('Y') }} {{ config('app.name') }}. @lang('All rights reserved.')
</x-mail::footer>
</x-slot:footer>
</x-mail::layout>
Я пытался использовать такие функции, как расширения, выход, включение... внутри шаблона лезвия emails.reminder.
Также пробовал разные способы обращения к шаблону поставщика, но безуспешно.
@extends('vendor.mail.html.message',[
'unsubscribe_url' => $unsubscribe_url,
])
@yield('vendor.mail.html.message',[
'unsubscribe_url' => $unsubscribe_url,
])
@include('vendor.mail.html.message',[
'unsubscribe_url' => $unsubscribe_url,
])
@extends('x-mail::message',[
'unsubscribe_url' => $unsubscribe_url,
])
@extends('x-slot:message',[
'unsubscribe_url' => $unsubscribe_url,
])
@extends('x-mail::footer',[
'unsubscribe_url' => $unsubscribe_url,
])
@extends('x-slot:footer',[
'unsubscribe_url' => $unsubscribe_url,
])
@extends('mail::html.message',[
'unsubscribe_url' => $unsubscribe_url,
])
@extends('mail::text.message',[
'unsubscribe_url' => $unsubscribe_url,
])
Изображение, как указано выше:






Я делал это намного сложнее, чем следовало бы, потому что не совсем разбирался в письмах и шаблонах.
В этом случае способ «передачи переменных в шаблон более высокого уровня» message.blade.php заключается в простом определении дополнительной области, в которую вставляется текст из используемого вами шаблона.
<!-- message.blade.php -->
<x-mail::layout>
@isset($foo) // if the section is optional
<x-mail::foo>
{{ $foo }}
</x-mail::foo>
@endisset
</x-mail::layout>
И определите этот слот в шаблоне, который вы используете, ссылаясь на slot:foo add, передавая любые данные, которые вы хотите туда добавить, в данном случае URL-адрес отказа от подписки.
<!-- reminder.blade.php -->
<x-mail::message>
<x-slot:foo>
<a href = "{{ $unsubscribe_url }}">Unsubscribe here.</a>
</x-slot:foo>
</x-mail::message>
Также требуется, чтобы при добавлении нового региона этот файл foo.blade.php добавлялся в папки mail/html и mail/text.