php 可捕获的致命错误:传递给Illuminate\Routing\UrlGenerator::__construct()的参数2必须是Illuminate\Http\Request的示例,给定为null

h4cxqtbf  于 2023-05-16  发布在  PHP
关注(0)|答案(4)|浏览(224)

当我尝试运行php artisan (anything)时,我得到这个错误:

PHP Catchable fatal error:  Argument 2 passed to
Illuminate\Routing\UrlGenerator::__construct()
must be an instance of Illuminate\Http\Request, null given, called in
/www/laravel5/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php
on line 56 and defined in
/www/laravel5/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php
on line 81

Catchable fatal error: Argument 2 passed to
Illuminate\Routing\UrlGenerator::__construct()
must be an instance of Illuminate\Http\Request, null given, called in
/www/laravel5/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php
on line 56 and defined in
/www/laravel5/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php
on line 81

我完全不知道是什么原因造成的,需要帮助。
先谢谢你了

x6h2sr28

x6h2sr281#

我发现了产生错误的原因。
config/services.php中,我是这样做的:

'facebook' => [
    'client_id'     => env('FACEBOOK_APP_ID', null),
    'client_secret' => env('FACEBOOK_APP_SECRET', null),
    'redirect'      => url('auth/facebook'),
]

url('auth/facebook')是导致错误的原因。

x7rlezfr

x7rlezfr2#

如你所知,问题是由于在config中使用url()引起的。如果使用asset(),也会发生同样的情况。当运行artisan命令时,框架无法确定网站的url是什么,因此出现错误。
我只想提出一个替代方案:

'facebook' => [
  'client_id'     => '***'
  'client_secret' => '***',
  'redirect'      => PHP_SAPI === 'cli' ? false : url('/fb-callback-path'),
]

我不喜欢它,但它是非常不可能的,你永远需要你的FB重定向时,运行命令行脚本,这样你就不必记住配置重定向在每个环境。

nnt7mjpx

nnt7mjpx3#

此问题是由于在配置中使用url()引起的。我把它从config/filesystems.php中删除了,它工作了!希望对你有帮助!

bq3bfh9z

bq3bfh9z4#

当你在配置文件中使用route()助手时,你会得到同样的错误,那是我的错误。

相关问题