【问题标题】:Laravel 5.6 - Can't pass variable to email viewLaravel 5.6 - 无法将变量传递给电子邮件视图
【发布时间】:2018-08-02 14:43:39
【问题描述】:

我已经在 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));

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

我哪里出错了?

【问题讨论】:

    标签: laravel laravel-5


    【解决方案1】:

    您的构造函数不接受任何变量...

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

    改成:

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

    或者你可以这样输入提示:

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

    【讨论】:

      【解决方案2】:

      编辑旅游邮件文件

      public function __construct($user)
      {
          $this->user = $user;
      }
      
      public function build()
      {
          return $this->view('emails.welcome')->with(['user' => $this->user]);
      }
      

      【讨论】:

      • 谢谢,正是我需要的!
      猜你喜欢
      • 1970-01-01
      • 2015-01-11
      • 1970-01-01
      • 2016-04-12
      • 2017-11-30
      • 2019-01-21
      • 1970-01-01
      • 2015-06-18
      • 2015-12-06
      相关资源
      最近更新 更多