【发布时间】:2017-04-26 20:07:30
【问题描述】:
我创建了一个成功运行的邮件通知,但是在尝试对其进行排队时,我收到以下错误:
Uncaught Exception: Serialization of 'Closure' is not allowed in /vendor/laravel/framework/src/Illuminate/Queue/Queue.php:125
以下是我认为导致错误的代码:
public function toMail($notifiable)
{
$view_file = 'emails.verifyEmail';
$view = View::make($view_file, ['invitationToken' => $this->invitationToken, 'team_name' => $this->team->name, 'team_domain' => $this->team->domain ]);
$view = new HtmlString(with(new CssToInlineStyles)->convert($view));
return (new MailMessage)
->subject('Email Verification')
->view('emails.htmlBlank', ['bodyContent' => $view]);
}
我不确定它试图序列化的“闭包”来自哪里。我尝试将->render() 添加到View::make 的末尾,但这似乎没有什么不同。我相信这可能与MailMessage 的view 功能有关,但我不太确定。
再一次,此通知在未排队时可以完美运行。
任何帮助将不胜感激。
【问题讨论】:
-
如果您真的认为它在这些行中,请通过从给出错误的行开始跟踪,或使用步骤调试,或在每行之后使用“exit”语句来确定究竟是哪一行抛出了错误错误。然后你就可以解决问题了。
-
@PaulJeromeBordallo 我知道是哪一行导致了错误。堆栈跟踪没有帮助,因为它都指向核心 laravel 代码。我知道错误是什么,只是不知道如何解决。
标签: laravel laravel-5 laravel-queue laravel-notification