【发布时间】:2019-11-19 15:08:23
【问题描述】:
这是完整的错误。
Illuminate\Mail\SendQueuedMailable::handle():脚本试图 执行方法或访问不完整对象的属性。请 确保类定义“Security\Mail\WelcomeMail”的 您尝试操作的对象是在 unserialize() 之前加载的 被调用或提供一个自动加载器来加载类定义 /var/www/html/vendor/laravel/framework/src/Illuminate/Mail/SendQueuedMailable.php
我们使用的是 Laravel 5.5。并执行以下代码
Mail::to($customer)->queue(new WelcomeMail($customer));
邮件程序是 laravel 附带的默认邮件程序,但我们正在将作业排队到 redis。客户是一个用户对象。欢迎邮件如下
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;
class WelcomeMail extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
public $user;
/**
* Create a new message instance.
*
* @return void
*/
public function __construct($user)
{
$this->user = $user;
}
/**
* Build the message.
*
* @return $this
*/
public function build()
{
return $this->view('security::emails.welcome');
}
}
【问题讨论】:
-
WelcomeMail在放入队列时被序列化,然后在处理队列时被反序列化。在序列化和反序列化之间是否有任何更改为WelcomeMail?您是否重命名了班级?你搬了班吗?您是否更改了名称空间?这些东西可能会破坏反序列化