Laravel Mail::queue 错误:闭包序列化失败,即使使用最基本的用法

Laravel Mail::queue error: Serialization of closure failed, even with the most basic usage

提问人:Nathan 提问时间:6/18/2016 更新时间:4/5/2017 访问量:853

问:

我遇到了问题,甚至不确定除了编写自己的来处理队列之外,还可以做些什么来解决它。正如您在下面的屏幕截图中看到的,我有一个非常小的示例,我正在尝试运行。有没有人遇到并解决了这个问题?Mail::queue()Jobartisan tinker

如果我改用,这完全可以正常工作;Mail::send()

error screenshot

PHP Laravel 闭合 LaRavel-5

评论

0赞 Alex Harris 7/5/2016
你使用SuperClosure吗?
0赞 Nathan 7/6/2016
您可以在PHP错误中看到正在使用SuperClosure,但这不是重点。关键是上面的代码在 Tinker 中不起作用,在实际应用程序中也不起作用。我正在尝试辨别这是否是我这边的某个配置选项,或者这是否是其他人在 Laravel 5.2 的默认安装中遇到的问题。
0赞 Nathan 7/11/2016
Laravel 在 laravel/framework/composer.json 中需要它。
0赞 Daniel 7/15/2016
你能发布你的activate.blade.php文件吗?
0赞 Nathan 7/16/2016
Activate.blade.php 的内容是“测试”。

答:

0赞 Vasiliy Bondarenko 4/5/2017 #1

闭包不可序列化。您不能将它们推送到队列中。

Psy Shell v0.8.3 (PHP 7.1.0 — cli) by Justin Hileman
>>> serialize(function(){});
Exception with message 'Serialization of 'Closure' is not allowed'

评论

0赞 Nathan 4/6/2017
这是一篇较旧的帖子,您的答案不适用。在 Laravel 5.2 中,上面的代码仍然在 5.2 文档中,但它不起作用。 取自文档页面。无论哪种方式,它现在大部分都关闭了,因为它已经有几个版本了,而且整个队列系统已经发生了变化。Mail::queue('emails.welcome', $data, function ($message) { // });