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'),
],
我已经集成并参与了一个 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'),
],