Php 使用队列时,如何在laravel邮件中传递变量?

Php 使用队列时,如何在laravel邮件中传递变量?,php,laravel-5.4,Php,Laravel 5.4,我已经设置了我的系统,这样当用户成功注册时,就会收到一封写有他们姓名的邮件,而且效果很好。但我注意到页面显示成功消息的时间比我希望的要长一些,所以我决定使用laravel队列进行后台发送。不幸的是,成员详细信息添加成功,但没有发送邮件,页面错误显示 未定义的属性:App\Mail\Received::$name 基本上,下面的代码失败了 $name = $newMember->firstname; Mail::to($newMember)->queue(new Received($

我已经设置了我的系统,这样当用户成功注册时,就会收到一封写有他们姓名的邮件,而且效果很好。但我注意到页面显示成功消息的时间比我希望的要长一些,所以我决定使用laravel队列进行后台发送。不幸的是,成员详细信息添加成功,但没有发送邮件,页面错误显示

未定义的属性:App\Mail\Received::$name

基本上,下面的代码失败了

$name = $newMember->firstname;

Mail::to($newMember)->queue(new Received($name));
而这一个是完美的工作

$name = $newMember->firstname;

Mail::to($newMember)->send(new Received($name));

所以最大的问题是,为什么在我使用queue时,$name属性未定义,但在我使用send时定义了它?

我通过在
App\Mail\Received
类中添加
protected$name
属性解决了这个问题。

你能发布
App\Mail\Received
code@SevaKalashnikov我已经提供了答案在下面我将对其进行编辑以给出精确的解决方案