我正在尝试 Mail::queue() 这就是我正在做的事情:
这是发送我的电子邮件的类
class Email {
public static function send($user, $view, $subject) {
Mail::queue($view, array('user' => $user), function($m) use ($user, $subject) {
$m->to($user->email)->subject($subject);
});
Log::info("Mail [$subject] sent to $user->email");
}
}
这是叫 marshal() 的人
class QueueController extends BaseController {
public function push()
{
Log::info('[queue.push] Queue::marshal() called');
return Queue::marshal();
}
}
这就是我所说的:
Email::send($user, 'site.users.emailRegistered', 'Activate your account');
这是我试图呈现为电子邮件的视图:
<!DOCTYPE html>
<html lang="en-US">
<head><meta charset="utf-8"></head>
<body>
<h2>Hi,</h2>
<div>
Please, click the link to activate your account: {{ URL::route('activate', array($user->id,$user->getActivationCode())) }}
</div>
</body>
</html>
问题是 Mail::send() 工作正常,但是当我使用 Mail::queue() 并且 marshal() 被触发时,我在日志中收到一堆与“尝试获取非对象的属性”相关的错误行。
显然我的数据没有被正确序列化,因为我将一些实例化模型传递给它,但是我如何正确序列化它呢?
我已经尝试创建一个 $data 数组并将所有内容放在上面,然后只将它传递给 Mail::queue(),但没有运气。