Laravel不会使用我的主题行收发电子邮件

时间:2018-04-18 16:08:42

标签: php laravel email laravel-5

我正在尝试为电子邮件设置主题行,但Laravel继续使用类名" FormCompleted"作为主题,这里是我的代码:

<?php

namespace App\Mail;

use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
use Illuminate\Contracts\Queue\ShouldQueue;

    class FormCompleted extends Mailable
    {
        use Queueable, SerializesModels;

        protected $data;

        /**
         * Create a new message instance.
         *
         * @param $data
         */
        public function __construct($data)
        {
            $this->data = $data;
        }

        /**
         * Build the message.
         *
         * @return $this
         */
        public function build()
        {
            return $this->subject('Form submitted')
                ->view('emails.form-completed')
                ->with('data', $this->data);
        }
    }

编辑1:问题仅出在我的本地服务器上,它可以在我的生产服务器上运行

1 个答案:

答案 0 :(得分:1)

我们可能需要查看用于实现FormCompleted Mailable类的代码并发送电子邮件,甚至可能是您的电子邮件Blade视图。这将有助于进一步调试。

但是,我测试了您的代码,我按正常情况按正确的主题发送了电子邮件。

我做的唯一更改是使用->with($this->data)而不是->with('data', $this->data);(如何拥有它),因为$data对象中定义的属性是视图使用的属性。

public function build()
{
    return $this->subject('Testing Email 2')
        ->view('foo.mail2')
        ->with($this->data);
}

否则我会遇到错误(视图尝试使用不可用的属性,因为视图一直在寻找data属性)。