Size: a a a

Laravel для начинающих

2020 January 05

Д

Діма in Laravel для начинающих
А кто нибудь знает откуда Laravel берет переменные для отображения информации в e-mail

@component('mail::message')
{{-- Greeting --}}
@if (! empty($greeting))
# {{ $greeting }}
@else
@if ($level === 'error')
# @lang('Whoops!')
@else
# @lang('Hello!')
@endif
@endif

Вот так начинается файл
notifications/email.blade.php
Когда я хочу просмотреть его в браузере то я делаю
make:mail MyEmailPreview
а дальше
//MyEmailPreview.php
return $this->view('vendor.notifications.preview');

При этом получаю ошибку
Undefined variable: level (View: \notifications\preview.blade.php)
источник

ИС

Илья Сакович in Laravel для начинающих
это шаблон нотификации
источник

MZ

Mikhail Zakharov in Laravel для начинающих
Парни, привет. В чем может быть говно? У меня есть поддомены. Я пропускаю роуты поддоменов через мидлвари. Один из них на проверку авторизации. Если авторизован, то дальше, если нет, то на страницу логина. И вот пытаюсь вернуть роут страницы логина, а ларка мне пишет, что обязательные параметры пропущены, хотя я никаких параметров не задавал и не ожидаю получить. Другой миддл работает нормальды, а вот этот мозг любит.
источник

MZ

Mikhail Zakharov in Laravel для начинающих
источник

MZ

Mikhail Zakharov in Laravel для начинающих
источник

MZ

Mikhail Zakharov in Laravel для начинающих
источник

MZ

Mikhail Zakharov in Laravel для начинающих
источник

AP

Alexander Pavlenko 🌚 in Laravel для начинающих
Санжар
а вообще поздравляю :З
спосеб
но я бы вернулся прогать🌚
источник

Д

Діма in Laravel для начинающих
Подскажите может кто знает.
я изменил в файле
config/mail.php
   'markdown' => [
       'theme' => 'default',

       'paths' => [
          //resource_path('views/vendor/mail'),
          resource_path('views/vendor/custom-mail'),
       ],
   ],

Кароче папки custom-mail у меня нет
Она с ошибкой специально.
Имейл дальше работает
Хочу чтобы не работал)
Вернее конечная  цель такая
чтобы юзать разметку из custom-mail которую я изменю как мне хочется.
источник

ИЛ

Иван Лещенко in Laravel для начинающих
Діма
Подскажите может кто знает.
я изменил в файле
config/mail.php
   'markdown' => [
       'theme' => 'default',

       'paths' => [
          //resource_path('views/vendor/mail'),
          resource_path('views/vendor/custom-mail'),
       ],
   ],

Кароче папки custom-mail у меня нет
Она с ошибкой специально.
Имейл дальше работает
Хочу чтобы не работал)
Вернее конечная  цель такая
чтобы юзать разметку из custom-mail которую я изменю как мне хочется.
В мыле ты юзаешь markdown?
источник

Д

Діма in Laravel для начинающих
Пытаюсь.
Я вообще ничего не могу изменить
источник

Д

Діма in Laravel для начинающих
Только что вообще удалил все css из папки mail
имейл дальше пришел со стилями
источник

Д

Діма in Laravel для начинающих
Хотя нет)
Вроде что-то получается.

   'markdown' => [
       'theme' => 'custom',

      'paths' => [
          //resource_path('views/vendor/mail'),
           resource_path('views/vendor/custom-mail'),
      ],
   ],

Сделал файл новый
вроде оттуда берет стили
сейчас буду коловать
источник

Д

Діма in Laravel для начинающих
Но хоть убей не пойму каким образом формируются переменные
такие как
@component('mail::message')
@if ($level  === 'error')
источник

Д

Діма in Laravel для начинающих
Хочу сделать свой кастомный имел с подтвеждением регистрации.
пол дня сижу не могу понять как
источник

Д

Діма in Laravel для начинающих
Например есть такая штука
{{-- Action Button --}}
@isset($actionText)
<?php
   switch ($level ?? '') {
       case 'success':
       case 'error':
          $color = $level ?? '';
          break;
      default:
           $color = 'primary';
  }
?>
@component('mail::button', ['url' => $actionUrl, 'color' => $color])
{{ $actionText }}
@endcomponent
@endisset

Вот откуда прилетают данные в переменную
$actionText
непонятно
и в интернете не могу найти нигде
источник

M

Michael in Laravel для начинающих
Діма
Например есть такая штука
{{-- Action Button --}}
@isset($actionText)
<?php
   switch ($level ?? '') {
       case 'success':
       case 'error':
          $color = $level ?? '';
          break;
      default:
           $color = 'primary';
  }
?>
@component('mail::button', ['url' => $actionUrl, 'color' => $color])
{{ $actionText }}
@endcomponent
@endisset

Вот откуда прилетают данные в переменную
$actionText
непонятно
и в интернете не могу найти нигде
Там полнейший пиздец, но разобраться можно.
Смотри. Model User у нас implements MustVerifyEmail . Ctrl-B на нём, идём в исходник интерфейса, видим функцию sendEmailVerificationNotification
Надо реализовать её в модели.
Делаем нотификацию
php artisan make:notification VerifyEmailNotification

там в toMail() можно указать путь до блейда с разметкой письма - https://laravel.com/docs/6.x/notifications#generating-the-message
например этот views/emails/custom-mail (скопированный из вендора) , значит добавляем там ->markdown('emails/custom-mail')
В модели пишем
public function sendEmailVerificationNotification()
   {
       $this->notify(new VerifyEmailNotification());
   }

Далее, переменные, которые хз как туда попадают. В нотификации мы делаем new MailMessage . Ctrl-B на неё и смотри исходник. Оно экстендит SimpleMessage . Ctrl-B на нём и вуаля, в маркдауновскую вьюху попадают переменный именно отсюда. Чтобы их установить, там есть методы, например ->action() . добавляешь их , получаешь результат
итого в toMail нотификации будет что-то вроде
return (new MailMessage)
           ->markdown("emails/notification")
           ->subject(config('app.name').": Подтверждение email")
           ->line('Чтобы подтвердить email, пожалуйста, нажмите эту кнопку:')
           ->action('Подтвердить Email', $verificationUrl)
           ->line('Если вы не регистрировались на сайте - просто проигнорируйте письмо.');
источник

Д

Діма in Laravel для начинающих
Michael
Там полнейший пиздец, но разобраться можно.
Смотри. Model User у нас implements MustVerifyEmail . Ctrl-B на нём, идём в исходник интерфейса, видим функцию sendEmailVerificationNotification
Надо реализовать её в модели.
Делаем нотификацию
php artisan make:notification VerifyEmailNotification

там в toMail() можно указать путь до блейда с разметкой письма - https://laravel.com/docs/6.x/notifications#generating-the-message
например этот views/emails/custom-mail (скопированный из вендора) , значит добавляем там ->markdown('emails/custom-mail')
В модели пишем
public function sendEmailVerificationNotification()
   {
       $this->notify(new VerifyEmailNotification());
   }

Далее, переменные, которые хз как туда попадают. В нотификации мы делаем new MailMessage . Ctrl-B на неё и смотри исходник. Оно экстендит SimpleMessage . Ctrl-B на нём и вуаля, в маркдауновскую вьюху попадают переменный именно отсюда. Чтобы их установить, там есть методы, например ->action() . добавляешь их , получаешь результат
итого в toMail нотификации будет что-то вроде
return (new MailMessage)
           ->markdown("emails/notification")
           ->subject(config('app.name').": Подтверждение email")
           ->line('Чтобы подтвердить email, пожалуйста, нажмите эту кнопку:')
           ->action('Подтвердить Email', $verificationUrl)
           ->line('Если вы не регистрировались на сайте - просто проигнорируйте письмо.');
Спасибо.
Как раз дошел до такого.
В созданном мною классе.
php artisan make:mail TestNotPreview.php
делаю так
  public function build()
   {
       return $this->markdown('vendor.notifications.preview');
   }
В итоге разбираю сейчас preview.blade.php в браузере.
Потом когда сделаю то просто перенесу в имейл.
источник

Д

Діма in Laravel для начинающих
не понимаю что такое $slot
<tr>
   <td class="header">
       <a href="{{ $url }}">
           {{ $slot }}
       </a>
   </td>
</tr>
источник

M

Michael in Laravel для начинающих
источник