我正在尝试使用简单的数据库队列驱动程序发送邮件。队列工作正常,但邮件内容存在问题。当我使用send()方法发送电子邮件时,一切都很好。内容是应有的,但是当尝试使用队列时,内容不是应有的,我从此代码的第二行获取了内容(但是在对邮件进行排队之前,第二行之后内容已更改):
$mail->textPlain = strip_tags($request->content);
$mail->textHtml = base64_encode($request->content);
$mail->date = date("Y-m-d H:i:s");
$mail->save();
//This mail content will be sent
$thread = $this->getThread($ticket, $request->content);
$mail->textPlain = strip_tags($thread);
$mail->textHtml = base64_encode($thread);
Email::to($ticket->from)->queue(new Reply($mail));
使用队列时,我要附加$ mail对象的那部分没有显示在最终消息中,最终消息是-$mail->textHtml = base64_encode($request->content);
。
但应为-
$thread = $this->getThread($ticket, $request->content);
$mail->textPlain = strip_tags($thread);
$mail->textHtml = base64_encode($thread);
$ mail是来自邮件模型的对象。
过程:我将输入的最后一个答复存储在数据库中,但是传递给收件人的最后答复消息是线程中的所有消息。
reply.blade.php
{!! base64_decode($reply->textHtml) !!}
答案 0 :(得分:1)
序列化作业时,不会将Model实例序列化为当前对象的表示。基本上存储了一个标识符,当该作业未序列化时,该标识符用于从数据库中检索Model实例。 (类类型,要查询的ID值,已加载的关系)
从数据库中检索模型时,所有未保留的内容将不可用。
Illuminate\Queue\SerializesModels
-> Illuminate\Queue\SerializesAndRestoresModelIdentifiers
如果您需要其他信息,则可以在创建作业时将更多变量传递给作业。