我有一个laravel应用程序(版本5.5),我已经开发了几个月。 最长的时间我可以在我的composer.json文件中添加新库并运行“composer update”,这样就可以构建一个新的composer.lock文件,一切正常。但是现在当我运行作曲家更新并重新启动我的laravel应用程序时,我所做的任何会导致网站尝试“重定向”(例如登录或注销)的行为都会产生以下错误:
类型错误:参数1传递给Laravel \ Lumen \ Http \ Redirector :: __ construct()必须是Laravel \ Lumen \ Application的实例,给出的Illuminate \ Foundation \ Application实例,在...中调用...(取决于我正在做重定向的地方)
所以我确定这必定是因为某些包没有正确更新。因此,如果我只删除整个.. \ vendor文件夹,然后运行composer install,它将解决问题。网站将运行好几个月,如果我再次运行作曲家更新错误回来。所以我知道它是由包含的其中一个包引起的。有谁知道该怎么做才能弄清楚是什么,或者是怎么或哪个包导致了这个错误?
如果你需要它,那么是composer.json文件的副本:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=5.6.4",
"anhskohbo/no-captcha": "^2.3",
"askedio/laravel5-soft-cascade": "^5.5",
"aws/aws-sdk-php": "^3.25",
"aws/aws-sdk-php-laravel": "^3.1",
"doctrine/dbal": "^2.5",
"intervention/image": "^2.3",
"laravel/framework": "5.5.*",
"laravel/socialite": "^3.0",
"laravel/tinker": "~1.0",
"laravolt/avatar": "^1.8",
"league/flysystem-aws-s3-v3": "^1.0",
"pbmedia/laravel-ffmpeg": "^1.1",
"php-ffmpeg/php-ffmpeg": "^0.9.5",
"sammyk/laravel-facebook-sdk": "^3.5",
"braintree/braintree_php" : "3.27.0"
},
"require-dev": {
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~6.0",
"filp/whoops": "~2.0"
},
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
},
"files": [
"app/Http/helpers.php"
]
},
"autoload-dev": {
"psr-4": {
"Tests\\": "tests/"
}
},
"scripts": {
"post-root-package-install": [
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"php artisan key:generate"
],
"post-install-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postInstall",
"php artisan optimize"
],
"post-update-cmd": [
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
"php artisan optimize"
],
"post-autoload-dump": [
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true
}
}
===============================================
更新:要清楚我已经搜索了Laravel \ Lumen的代码,但我没有找到任何引用,但是当我搜索\ vendor文件夹时,我得到了几个包括亚马逊AWS的软件包(参见下文)....但是我该如何修理这些包?
答案 0 :(得分:0)
Laravel\Lumen
你的答案。为什么要使用Lumen
?
您的代码中某处导入了错误的类。例外是声明正在创建Illuminate\Foundation\Application
,这是正确的,但在某处有一个类型提示期待Laravel\Lumen\Application
。搜索Laravel\Lumen\Application
的代码,您可能会发现问题。