Laravel 无法为序列化准备路由 [api/user]。使用闭包

Posted

技术标签:

【中文标题】Laravel 无法为序列化准备路由 [api/user]。使用闭包【英文标题】:Laravel Unable to prepare route [api/user] for serialization. Uses Closure 【发布时间】:2020-08-27 14:58:10 【问题描述】:

当我评论所有路线时,我收到此错误。 请告诉我,关闭路线是什么?以及为什么显示这个错误

【问题讨论】:

你在执行命令routes:cache吗? 是的。之后我收到错误 它的预期行为。如果路由中有闭包,则无法缓存它们。 我不明白 【参考方案1】:

闭包是一个anonymous function,用于define routes without an action:

Route::get('/test', function () 
    return 'hello world';
);

当您在浏览器中调用路由/test 时,上面的示例返回hello world

您不能缓存引用闭包的路由。

在默认的 Laravel 应用程序中有两种使用闭包的路由:在文件 routes/api.phproutes/web.php 中。删除它们或将它们移动到控制器,您就可以缓存您的路线。

这是 Laravel 框架存储库中讨论此行为的 an issue。

【讨论】:

这是一个错误吗?我可以保持不变吗? 不,这是预期的行为。在生产应用程序中,您不希望有任何关闭路线。

以上是关于Laravel 无法为序列化准备路由 [api/user]。使用闭包的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 7:无法为序列化准备路由 [api/user]。使用闭包。 (逻辑异常)[重复]

无法为序列化准备路由 [api/user]。使用闭包

Laravel 5 - 带有消息“无法准备路由”的异常“LogicException”

无法为 api 路由 laravel 设置 cookie

Laravel 仅为当前用户启用路由

laravel新创建的模块路由无法访问