【问题标题】:Laravel - Passing data to email viewLaravel - 将数据传递到电子邮件视图
【发布时间】:2015-12-06 16:11:54
【问题描述】:

我无法通过在我的视图中使用此变量来访问我的 email.verify 视图中的确认代码变量:

$user->confirmation_code

当我分配这样的数组项时,这不应该是可访问的吗?我忽略了什么?

$user = User::create([
            'name' => $data['name'],
            'email' => $data['email'],
            'password' => bcrypt($data['password']),
            'confirmation_code' => str_random(30)
        ]);

        Mail::send('emails.verify', ['user' => $user], function ($m) use ($user) {
            $m->to($user->email, $user->name)->subject('Email verificatie');
        });

所有其他变量,如姓名、电子邮件、密码都是可访问的,我将邮件发送方法作为我的用户对象。

【问题讨论】:

    标签: php email laravel laravel-5.1


    【解决方案1】:

    似乎您没有将confirmation_code 传递给电子邮件模板。只需将confirmation code 保存到某个变量中即可

     Mail::send('emails.verify', ['user' => $user, 'confirmation_code' => $yourConfirmationCodevariable ], function($m){
                            $$m->to($user->email)->subject('Transaction Details');
                        });
    

    在你的verify.blade

    只要{{ $confirmation_code }}

    【讨论】:

      【解决方案2】:

      您是否将 'confirmation_code' 添加到 User.php 文件中的数组 $fillable 中?

      【讨论】:

      • 该死的。我发现情况确实如此。但是我想知道您为什么有时会收到批量分配异常错误,但在这种情况下它没有给出任何错误?
      • @Stephan-v 我认为当您尝试创建新模型对象时会出现批量分配异常错误。
      【解决方案3】:

      您可以通过以下方式在 Mailable 视图中传递变量:

      ...
      
      public function build()
      {
          return $this->view('emails.viewname')->with(['explicit_variable' => $some_value]);
      }
      
      ...
      

      【讨论】:

        猜你喜欢
        • 2017-04-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-06-19
        • 1970-01-01
        相关资源
        最近更新 更多