0

我在用

Ubuntu
laravel 4.2
beanstalked

当我尝试

php artisan queue:work

它返回

 [ErrorException]                                                  
  Insufficient data for unserializing - 1403 required, 218 present  

邮件功能(信任包)

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

2 回答 2

2

我也遇到了这个问题,我想我已经找到了解决方案。

当一封电子邮件排队时,Laravel 需要序列化所有电子邮件的数据,以便稍后在处理队列时调用它。

问题在于,当您尝试序列化 Eloquent 模型的实例(本例中为 $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'));
    }
);

我在 GitHub 中查看此问题时找到了解决方案

于 2015-01-29T23:37:13.580 回答
0

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

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

(Lang::get('confide::confide.email.account_confirmation.subject'));

不正确。没有 2 :: 来命名文件,它是:

Config::get('confide.email_queue');

等等所有其他声明!

这是

filename.arraykey
于 2015-01-26T12:42:20.933 回答