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

我是 Laravel 的新手,现在我管理某人留下的项目。

我尝试向API添加一个函数,我编辑的内容:

1)添加方法:

myproject/app/Http/Controllers/Api/ArticleController.php

2)添加路由到控制器:

myprojectmyproject/routes/api.php

但是,当我尝试运行时,php artisan route:cache出现以下错误:

路由缓存已清除!\n LogicException : 无法为序列化准备路由 [/]。使用闭包。

如果我因为使用闭包而出错,为什么以前的开发人员可以填充路由?

通过运行,php artisan route:list我可以看到以前做过的路线列表。

任何的想法 ?


一只名叫tom的猫
浏览 220回答 2
2回答

芜湖不芜

当你想使用路由缓存时,你不能使用闭包在任何文件中注册路由。由于您的文件中仍然有来自全新 Laravel 安装的默认路由routes/web.php,因此您会收到此错误,因为当您do php artisan route:cache在引擎盖下的 Laravel 将路由文件序列化并将它们合并为一个时,他的查找速度会更快。要解决此问题,您可以简单地删除不需要的路由,或者像处理所有其他路由一样将其移动到控制器。然后错误应该消失了。

慕娘9325324

只需删除任何带有回调函数的路由,如默认路由。Route::middleware('auth:api')->get('/user', function (Request $request) {    return $request->user();});编辑Route::middleware('auth:api')->get('/user', 'SomeController@someMethod');
打开App,查看更多内容
随时随地看视频慕课网APP