Laravel邮件队列与邮件发送不同

时间:2018-07-26 06:32:49

标签: php laravel

我正在尝试使用简单的数据库队列驱动程序发送邮件。队列工作正常,但邮件内容存在问题。当我使用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) !!}

1 个答案:

答案 0 :(得分:1)

序列化作业时,不会将Model实例序列化为当前对象的表示。基本上存储了一个标识符,当该作业未序列化时,该标识符用于从数据库中检索Model实例。 (类类型,要查询的ID值,已加载的关系)

从数据库中检索模型时,所有未保留的内容将不可用。

Illuminate\Queue\SerializesModels-> Illuminate\Queue\SerializesAndRestoresModelIdentifiers

如果您需要其他信息,则可以在创建作业时将更多变量传递给作业。