为了账号安全,请及时绑定邮箱和手机立即绑定

Laravel - 错误“无法为序列化准备路由 [/]。使用闭包。”

Laravel - 错误“无法为序列化准备路由 [/]。使用闭包。”

PHP
一只名叫tom的猫 2021-09-18 10:57:06
我是 Laravel 的新手,现在我管理某人留下的项目。我尝试向API添加一个函数,我编辑的内容:1)添加方法:myproject/app/Http/Controllers/Api/ArticleController.php2)添加路由到控制器:myprojectmyproject/routes/api.php但是,当我尝试运行时,php artisan route:cache出现以下错误:路由缓存已清除!\n LogicException : 无法为序列化准备路由 [/]。使用闭包。如果我因为使用闭包而出错,为什么以前的开发人员可以填充路由?通过运行,php artisan route:list我可以看到以前做过的路线列表。任何的想法 ?
查看完整描述

2 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

当你想使用路由缓存时,你不能使用闭包在任何文件中注册路由。

由于您的文件中仍然有来自全新 Laravel 安装的默认路由routes/web.php,因此您会收到此错误,因为当您do php artisan route:cache在引擎盖下的 Laravel 将路由文件序列化并将它们合并为一个时,他的查找速度会更快。

要解决此问题,您可以简单地删除不需要的路由,或者像处理所有其他路由一样将其移动到控制器。然后错误应该消失了。


查看完整回答
反对 回复 2021-09-18
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

只需删除任何带有回调函数的路由,如默认路由。


Route::middleware('auth:api')->get('/user', function (Request $request) {

    return $request->user();

});

编辑


Route::middleware('auth:api')->get('/user', 'SomeController@someMethod');


查看完整回答
反对 回复 2021-09-18
  • 2 回答
  • 0 关注
  • 219 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信