18910140161

laravel 5.0 升级 6.18 之 Route::controllers 的处理

顺晟科技

2021-06-16 10:26:23

301

Route:controllers是Laravel语法的旧版本,在Laravel 6.x中不再支持,需要兼容性处理。

laravel 6.x下报告的错误

例如:

route : controllers([' blog '=' blog controller ']);

错误报告

无效的文档异常:属性[控制器]不存在。

Route:controllers的用法在Laravel 5.3之后被放弃了,因为历史项中有很多老写法,也就是控制器代码中有很多getXXX,postYYY等函数名。逐个更改函数名是不合适的,因为不可能在短时间内确认哪些需要更改,哪些不应该更改。(比如我喜欢以get开头的函数名命名,但是和Route:controllers的语法无关。).所以,我需要一个兼容的升级方案。

拉弗尔前进路线,伟大的人民救星

我们找到了https://github.com/lesichkovm/laravel-advanced-route,图书馆,它能与旧的语法完全兼容,而且成本更低。

首先安装依赖项:

composer require lesichkovm/laravel-advanced-route

但是,安装完成后检测路由文件时报告了一个错误

@ PHP artisan package : discover-ansi

无效的文档异常:属性[控制器]不存在。

我不明白为什么安装composer后要检查一次routes文件。是因为这三方靠的是定制逻辑吗?

不管怎样,先试着注释掉原来的路由文件

路由:控制器

路由:控制器

代码行。

然后执行它

作曲家需要lesichkovm/laravel-advanced-route,

这是成功的。Git再次回滚修改

git checkout - routes/web.php

若要恢复原始路由文件,请将

route:3360 controllers,route:3360 controller改为route:3360 controllers和route :3360 controller。

就是这样。

我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航