Laravel默认电子邮件验证布局?

时间:2019-11-20 10:13:30

标签: laravel email verification

如何更改Laravel默认电子邮件验证布局

5 个答案:

答案 0 :(得分:2)

此验证电子邮件有多个部分,位于不同的位置。 可以在\vendor\laravel\framework\src\Illuminate\Auth\Notifications\VerifyEmail.php处更改电子邮件的主题和消息。寻找这个功能

public function toMail($notifiable)
{
    $verificationUrl = $this->verificationUrl($notifiable);

    if (static::$toMailCallback) {
        return call_user_func(static::$toMailCallback, $notifiable, $verificationUrl);
    }

    return (new MailMessage)
        ->subject(Lang::get('Verify Email Address'))
        ->line(Lang::get('Please click the button below to verify your email address.'))
        ->action(Lang::get('Verify Email Address'), $verificationUrl)
        ->line(Lang::get('If you did not create an account, no further action is required.'));
}

电子邮件模板位于vendor\laravel\framework\src\Illuminate\Notifications\resources\views\email.blade.php

视图和其他样式信息(包括CSS)可以在\vendor\laravel\framework\src\Illuminate\Mail\resources\views\

中找到

答案 1 :(得分:1)

电子邮件布局

您可以使用此artisan命令发布供应商电子邮件模板(电子邮件的布局):

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

电子邮件模板的副本现在位于resources/views/vendor/mail中,您可以对其进行自定义。

Laravel将使用这些已发布的模板,而不是Laravel框架供应商代码中的模板。

验证电子邮件内容

可以在此文件中直接更改验证电子邮件的内容:

resources/views/auth/verify.blade.php


参考文献:

答案 2 :(得分:0)

验证电子邮件的布局位于resources/views/auth/verify.blade.php中。您可以直接在此处进行更改。

如果您要使用完全不同的视图进行验证,则可以覆盖show()内部的VerificationController方法。您需要做的就是将此方法添加到该控制器的顶部:

public function show(Request $request)
    {
        return $request->user()->hasVerifiedEmail()
                        ? redirect($this->redirectPath())
                        : view('your.view');
    }

答案 3 :(得分:0)

您可以通过运行此命令来发布视图文件

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

然后在resources/views/vendor/notification

中编辑刀片文件

有关自定义电子邮件模板的更多信息,请访问此链接 How to Customize the Templates

答案 4 :(得分:0)

您应该运行

class Dish(models.Model):
  PIZZA = 'PIZZA'
  SUB = 'SUB'
  PASTASALAD = 'PASTASALAD'
  PLATTER = 'PLATTER'
  TYPE_CHOICES = ( (PIZZA, 'Pizza'), (SUB, 'Sub'), (PASTASALAD, 'PastaSalad'), (PLATTER, 'Platter') )
  name = models.CharField(max_length=64, blank=True) # blank makes name optional
  type = models.CharField(max_length=64, choices=TYPE_CHOICES, blank=True)
  size = models.CharField(max_length=1, choices=SIZE_CHOICES, default=SMALL, blank=True)
  price = models.DecimalField(max_digits=6, decimal_places=2, default=None)

  class Meta:
        abstract = True

  def __str__(self):
    return f"{self.name} {self.size} - Price: ${self.price}"

class Pizza(Dish):
  dish = models.OneToOneField(Dish, on_delete=models.CASCADE, related_name="dish_id_pizza", parent_link=True)
  REGULAR = 'REGULAR'
  SICILIAN = 'SICILIAN'
  STYLE_CHOICES = ( (REGULAR, 'Regular'), (SICILIAN, 'Sicilian'),)
  style = models.CharField(max_length=7, choices=STYLE_CHOICES, default=REGULAR)
  topping_count = models.IntegerField(default=0, validators=[MaxValueValidator(5), MinValueValidator(0)])

  def __str__(self):
    return f"{self.size} {self.style} pizza with {self.topping_count} toppings: ${self.price}"