Laravel php artisan 产生错误

Laravel php artisan produces error

我已经集成并参与了一个 Laravel 5.4 项目。我实际上正确地配置了这个并且 php artisan 命令在开发时间之间完美地工作 before.But(我已经使用 laravel 实现了计划任务并且不确定在那个问题出现之后)它产生 m php artisan 命令出错。谁能帮我解决这个问题。

以下是任何 artisan 命令的错误日志

PHP Fatal error: Uncaught Symfony\Component\Debug\Exception\FatalThrowableError: Type error: Argument 2 passed to Illuminate\Routing\UrlGenerator::__construct() must be an instance of Illuminate\Http\Request, null given, called in /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php on line 60 in /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php:103

Stack trace:
#0 /var/www/html/projrct/vendor/laravel/framework/src/Illuminate/Routing/RoutingServiceProvider.php(60):

Illuminate\Routing\UrlGenerator->__construct(Object(Illuminate\Routing\RouteCollection), NULL) #1 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Container/Container.php(290): Illuminate\Routing\RoutingServiceProvider->Illuminate\Routing{closure}(Object(Illuminate\Foundation\Application)) #2 /var/www/html/project/vendor/laravel/framework/src/Illuminate/Container/Container.php(746): Illuminate\Container\Container->Illuminate\Container{closur in /var/www/html/project/vendor/laravel/framework/src/Illuminate/Routing/UrlGenerator.php on line 103

请确保您没有在配置文件中使用任何 url() 或 asset() 或其他辅助函数

我的案例 url() filesystem.php 中的辅助函数导致了这个问题。我删除了它,一切正常。

我发现了这个问题,当你使用任何 artisan 命令时,你应该避免在任何 config 文件中使用 helper 函数。只需评论那些并在 运行 取消注释你的 config 文件后尝试 运行 artisan 命令。

//in config/'any_file.php'
return [
   'name'   => 'Larvel',
   'url'    => url('/')
];

//just change and uncomment url() helper
return [
   'name'   => 'Larvel',
    //'url' => url('/')
];

如果确实需要将函数放在您的配置中,您可以使用 PHP_SAPI 检查天气应用程序是 运行 HTTP 或 CLI,

'redirect'  =>  PHP_SAPI === 'cli' ? false : url('synchronise')

注释掉 url()asset() 调用的另一种替代解决方案是在 运行 时间检查环境:

return [
    'URL' => app()->runningInConsole() ? '' : url(''),
    ...
];

当我在 Admin LTE 的配置文件 (adminlte.php) 中使用资产时,我遇到了同样的问题。

请评论您的资产,url 在这样的配置文件中使用 artisan 命令时

[
    'type' => 'js',
    'asset' => false,
     // 'location' => asset('js/waitme/waitMe.min.js'),
],