Laravel - 将数据传递到电子邮件视图

Laravel - Passing data to email view

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

$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');
        });

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

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

您似乎没有将 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 }}

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

...

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

...