首页 > 解决方案 > 升级到 laravel 6 时出现照明请求问题

问题描述

尝试从 5.8 升级到 laravel 6 后出现以下代码错误,以前有没有人遇到过这种情况?

Fatal error: Uncaught TypeError: Argument 2 passed to Illuminate\Routing\UrlGenerator::__construct() must be an instance of Illuminate\Http\Request, null given, called in C:\xampp\htdocs\rebuild\vendor\laravel\framework\src\Illuminate\Routing\RoutingServiceProvider.php on line 68 and defined in C:\xampp\htdocs\rebuild\vendor\laravel\framework\src\Illuminate\Routing\UrlGenerator.php:120
Stack trace:
#0 C:\xampp\htdocs\rebuild\vendor\laravel\framework\src\Illuminate\Routing\RoutingServiceProvider.php(68): Illuminate\Routing\UrlGenerator->__construct(Object(Illuminate\Routing\RouteCollection), NULL, NULL)
#1 C:\xampp\htdocs\rebuild\vendor\laravel\framework\src\Illuminate\Container\Container.php(799): Illuminate\Routing\RoutingServiceProvider->Illuminate\Routing\{closure}(Object(Illuminate\Foundation\Application), Array)
#2 C:\xampp\htdocs\rebuild\vendor\laravel\framework\src\Illuminate\Container\Container.php(681): Illuminate\Container\Container->build(Object(Closure))
#3 C:\xampp\htdocs\rebuild\vendor\laravel\framework\src\ in C:\xampp\htdocs\rebuild\vendor\laravel\framework\src\Illuminate\Routing\UrlGenerator.php on line 120

标签: laravellaravel-6

解决方案


类似的问题已经在Laravel 存储库Laracasts上列出

似乎问题是因为配置文件中使用了url()asset()Helper 函数。

要解决此错误,请在配置文件中使用config()base_path定义绝对或相对路径,而不是url()assset()函数,例如

'cdn' => url('vendor/js/tinymce/tinymce.min.js'),

将其更改为

'cdn' => Config('app.url').'/vendor/js/tinymce/tinymce.min.js',

更改asset('home')base_path('public/home'),

注意:您不应该在 config 中使用 laravel 依赖项,因为该配置在请求生命周期的早期加载,并且可能无法使用全局帮助程序之类的东西。

如果您在配置文件中使用某些依赖项,请在文件中定义.env它们


推荐阅读