代码之家  ›  专栏  ›  技术社区  ›  fightstarr20

Laravel 5.6-无法将变量传递到电子邮件视图

  •  0
  • fightstarr20  · 技术社区  · 6 年前

    我在Laravel 5.6应用程序中安装了一个邮件程序,但是我正努力将变量传递给视图,welcome.php控制器看起来像这样。

    namespace App\Mail;
    
    use Illuminate\Bus\Queueable;
    use Illuminate\Mail\Mailable;
    use Illuminate\Queue\SerializesModels;
    use Illuminate\Contracts\Queue\ShouldQueue;
    
    class Welcome extends Mailable
    {
        use Queueable, SerializesModels;
    
        public $user;
    
        public function __construct()
        {
            $this->user = $user;
        }
    
        public function build()
        {
            return $this->view('emails.welcome');
        }
    }
    

    我的任何观点都是这样的……

    Your registered email-id is {{$user->email}}
    

    在创建这样的用户后,我正在呼叫电子邮件控制器…

    $user->save();
    Mail::to($user->email)->send(new Welcome($user));
    

    我收到一条错误消息告诉我 未定义的变量:用户

    我哪里出错了?

    2 回复  |  直到 6 年前
        1
  •  1
  •   J. Doe    6 年前

    public function __construct($user)
    {
        $this->user = $user;
    }
    
    public function build()
    {
        return $this->view('emails.welcome')->with(['user' => $this->user]);
    }
    
        2
  •  2
  •   Chin Leung    6 年前

    public function __construct()
    {
        $this->user = $user;
    }
    

    public function __construct($user)
    {
        $this->user = $user;
    }
    

    use App\User;
    
    
    ...
    
    
    public function __construct(User $user)
    {
        $this->user = $user;
    }