我有这个代码:
$data = ['user'=>User::find(1)];
Mail::later(5, 'email.template', $data, function($message){
...
})
和
email.template
有这个:print_r($user)
当我收到电子邮件时, $user 的实例不是 User 对象。怎么会这样?这就像对象没有引用正确的上下文。但是当我使用 Mail::send 时它工作正常。这里有点困惑。
最佳答案
Eloquent 模型对于队列的工作来说太大了,通常有 64kb 的限制。
我建议您使用常规队列作业,将您的用户 ID 传递给它,然后从那里发送电子邮件:
$user_id = 1;
Queue::later(5, function () use ($user_id) {
$data = ['user' => User::find($user_id)];
Mail::send('email.template', $data, function ($message) {
// ......
});
});
关于laravel - 使用 Laravel Mail::later 时缺少对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21299341/