【发布时间】:2018-08-02 15:26:38
【问题描述】:
继上一个问题之后,我设置了一个电子邮件控制器,以正确地将用户数据传递给视图。我现在正在尝试修改它,以便可以传递一些自定义数据。我的控制器看起来像这样......
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 $email_data;
public function __construct($email_data)
{
$this->email_data = $email_data;
}
public function build()
{
return $this->view('emails.welcome')->with(['email_data' => $this->email_data]);
}
}
我正在发送这样的电子邮件...
/* Create Data Array For Email */
$email_data = array(
'first_name'=>'John',
'last_name'=>'Doe',
'email'=>'john@doe.com',
'password'=>'temp',
);
/* Send Email */
Mail::to($user->email)->send(new Welcome($email_data));
这是正确的吗?当我尝试使用这种方法时,它似乎没有将数据传递给电子邮件模板。然后如何在视图中访问这些数据?
【问题讨论】:
-
你不需要这部分
->with(['email_data' => $this->email_data])如果属性是公开的,你可以在视图中访问它 -
我试过没有那部分,但在视图中访问我得到未定义的变量:电子邮件。试过 $email 和 $email_data->email
-
试试这个
$email_data['email'] -
试试
return $this->view('emails.welcome', compact('email_data')) -
@Maraboc - 完美,解决了!