laravel 邮件排队 - 反序列化数据不足
laravel mail queueing - Insufficient data for unserializing
我正在使用
Ubuntu
laravel 4.2
beanstalked
当我尝试
php artisan queue:work
它returns
[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'));
}
);
我们最近遇到了同样的问题,但我发现了另一个错误的地方:
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
我也遇到了这个问题,我想我已经找到了解决方案。
当电子邮件排队时,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'));
}
);
我在查看 this issue in GitHub
时找到了解决方案
我正在使用
Ubuntu
laravel 4.2
beanstalked
当我尝试
php artisan queue:work
它returns
[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'));
}
);
我们最近遇到了同样的问题,但我发现了另一个错误的地方:
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
我也遇到了这个问题,我想我已经找到了解决方案。
当电子邮件排队时,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'));
}
);
我在查看 this issue in GitHub
时找到了解决方案