使用二进制数据发送可邮寄的内容

时间:2018-02-15 10:22:21

标签: php laravel laravel-5 laravel-5.5 laravel-5.6

我试图对包含具有二进制ID的模型(Order)的属性的可邮寄队列进行排队。

<?php

namespace App\Mail;

use App\Order;
use Illuminate\Bus\Queueable;
use Illuminate\Mail\Mailable;
use Illuminate\Queue\SerializesModels;

class OrderShipped extends Mailable
{
    use Queueable, SerializesModels;

    /**
     * The order instance.
     *
     * @var Order
     */
    public $order;

    /**
     * Create a new message instance.
     *
     * @return void
     */
    public function __construct(Order $order)
    {
        $this->order = $order;
    }

    /**
     * Build the message.
     *
     * @return $this
     */
    public function build()
    {
        return $this->view('emails.orders.shipped');
    }
}

Order实现Serializable接口。在模型的serialize方法中,我将二进制id转换为字符串,因此可以将其正确编码为json。

不幸的是,当我想对邮件进行排队时,永远不会调用serialize方法。

这是框架中的错误还是我错过了什么?

此外,我在PHP文档中注意到,在使用Serializable界面时,不再支持__sleep__wakeup方法:

  

实现此接口的类不再支持__sleep()和   __wakeup()。

但是Illuminate\Queue\SerializesModels特质似乎会覆盖它们......

修改 我正在使用this trait for my binary ids。 在我的serialize方法中,我只需拨打$this->toArray()

0 个答案:

没有答案