Php laravel邮件队列-数据不足,无法进行非序列化

Php laravel邮件队列-数据不足,无法进行非序列化,php,laravel,laravel-4,beanstalkd,pheanstalk,Php,Laravel,Laravel 4,Beanstalkd,Pheanstalk,我正在使用 Ubuntu laravel 4.2 beanstalked 当我试图 php artisan queue:work 它回来了 [ErrorException] Insufficient data for unserializing - 1403 required, 218 present 邮件功能(保密包) 我们最近问了同样的问题,但我发现另一件事是错误的: Conf

我正在使用

Ubuntu
laravel 4.2
beanstalked
当我试图

php artisan queue:work
它回来了

 [ErrorException]                                                  
  Insufficient data for unserializing - 1403 required, 218 present  
邮件功能(保密包)


我们最近问了同样的问题,但我发现另一件事是错误的:

Config::get('confide::email_queue'),
Config::get('confide::email_account_confirmation'),

这是不对的。没有2::来命名该文件,它是:

Config::get('confide.email_queue');
所有其他声明都是如此

是的

filename.arraykey

我也遇到了这个问题,我想我已经找到了解决办法

当电子邮件排队时,Laravel需要序列化电子邮件的所有数据,以便稍后处理队列时可以调用这些数据

问题是,当您尝试序列化雄辩模型的实例时(在本例中为user),序列化的字符串将太大,无法存储在队列中

要解决此问题,请在调用Mail::queueOn之前将所需的特定值存储在数组中,并将该数组附加到作为参数传递给Mail::queueOn的闭包中

$data = array(
    'email' => $user->email,
    'username' => $user->username
);

Mail::queueOn(
    Config::get('confide::email_queue'),
    Config::get('confide::email_account_confirmation'),
    compact('user'),
    function ($message) use ($data) {
        $message
            ->to($data['email'], $data['username'])
            ->subject(Lang::get('confide::confide.email.account_confirmation.subject'));
    }
);

我在查看

相同的结果时找到了解决方案,我认为此函数有效,因为Beanstalk控制台显示“当前作业就绪”值
filename.arraykey
$data = array(
    'email' => $user->email,
    'username' => $user->username
);

Mail::queueOn(
    Config::get('confide::email_queue'),
    Config::get('confide::email_account_confirmation'),
    compact('user'),
    function ($message) use ($data) {
        $message
            ->to($data['email'], $data['username'])
            ->subject(Lang::get('confide::confide.email.account_confirmation.subject'));
    }
);