laravel - 升级到 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
解决方案
类似的问题已经在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
它们
推荐阅读
- database - 如何在数据库浏览器中为 SQLite 的“浏览数据”视图应用通配符和“非”?
- c# - .net core 中项目之间的身份验证
- javascript - React Native - 如何在类组件中初始化对象?
- php - PHP 错误:警告:非法字符串偏移 'rating'
- python-2.7 - 如何增加可见性_超时
- java - 如何同时重新加载所有片段
- postgis - 如何获取我的geom中的点与入口点经度和纬度之间的距离
- html - 如何使用 R 触发文件下载
- botframework - Bot Framework 渲染选项更改格式
- css - Safari 12 中对象位置的 CSS 动画