Class 'Laravel\Passport\Passport' 未在 Laravel 5.7 上找到
Class 'Laravel\Passport\Passport' not found on Laravel 5.7
我只是 cloned
一个 repo
和一个 Laravel 5.7 project
,我在我的机器上 运行 它遇到了一些麻烦。
当我制作 composer install
时,我得到这个 error
:
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
Nothing to install or update
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover
In AuthServiceProvider.php line 35:
Class 'Laravel\Passport\Passport' not found
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1
我该怎么做才能解决这个错误?我不知道从哪里开始。
这是项目的composer.json file
:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": "^7.1.3",
"designmynight/laravel-mongodb-passport": "^1.1",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.3",
"jenssegers/mongodb": "^3.4",
"laravel/framework": "5.7.*",
"laravel/passport": "^7.0",
"laravel/tinker": "^1.0"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^2.0",
"phpunit/phpunit": "^7.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\Foundation\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true
}
看来你需要做
composer update
而不是安装?
虽然 composer update
根据情况做了一些技巧,但它可能不是最好的解决方案。
首先 - 当 运行ning composer install
软件包根据 composer.lock
中的版本安装时,如果它包含在存储库中(应该是)。
在您的情况下,当您仔细查看控制台输出时,您有:
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
所以很可能有人将 Laravel Passport 包添加到 composer.json
但没有 运行 composer install
或者忘记提交更新的 composer.lock
文件.
现在记得 运行ning composer update
你更新了所有的包。有时它很好(仅在本地主机上)但有时它不是因为你并不总是想要更新所有包。因此,当您需要更新单个包时,您也可以在这种情况下尝试 composer update laravel/passport
只是强制 updating/installing 只是 Laravel Passport,而不触及其他包。
我只是 cloned
一个 repo
和一个 Laravel 5.7 project
,我在我的机器上 运行 它遇到了一些麻烦。
当我制作 composer install
时,我得到这个 error
:
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
Nothing to install or update
Generating optimized autoload files
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover
In AuthServiceProvider.php line 35:
Class 'Laravel\Passport\Passport' not found
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1
我该怎么做才能解决这个错误?我不知道从哪里开始。
这是项目的composer.json file
:
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": "^7.1.3",
"designmynight/laravel-mongodb-passport": "^1.1",
"fideloper/proxy": "^4.0",
"guzzlehttp/guzzle": "^6.3",
"jenssegers/mongodb": "^3.4",
"laravel/framework": "5.7.*",
"laravel/passport": "^7.0",
"laravel/tinker": "^1.0"
},
"require-dev": {
"beyondcode/laravel-dump-server": "^1.0",
"filp/whoops": "^2.0",
"fzaninotto/faker": "^1.4",
"mockery/mockery": "^1.0",
"nunomaduro/collision": "^2.0",
"phpunit/phpunit": "^7.0"
},
"autoload": {
"classmap": [
"database/seeds",
"database/factories"
],
"psr-4": {
"App\": "app/"
}
},
"autoload-dev": {
"psr-4": {
"Tests\": "tests/"
}
},
"extra": {
"laravel": {
"dont-discover": [
]
}
},
"scripts": {
"post-root-package-install": [
"@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
],
"post-create-project-cmd": [
"@php artisan key:generate"
],
"post-autoload-dump": [
"Illuminate\Foundation\ComposerScripts::postAutoloadDump",
"@php artisan package:discover"
]
},
"config": {
"preferred-install": "dist",
"sort-packages": true,
"optimize-autoloader": true
},
"minimum-stability": "dev",
"prefer-stable": true
}
看来你需要做
composer update
而不是安装?
虽然 composer update
根据情况做了一些技巧,但它可能不是最好的解决方案。
首先 - 当 运行ning composer install
软件包根据 composer.lock
中的版本安装时,如果它包含在存储库中(应该是)。
在您的情况下,当您仔细查看控制台输出时,您有:
Warning: The lock file is not up to date with the latest changes in composer.json. You may be getting outdated dependencies. Run update to update them.
所以很可能有人将 Laravel Passport 包添加到 composer.json
但没有 运行 composer install
或者忘记提交更新的 composer.lock
文件.
现在记得 运行ning composer update
你更新了所有的包。有时它很好(仅在本地主机上)但有时它不是因为你并不总是想要更新所有包。因此,当您需要更新单个包时,您也可以在这种情况下尝试 composer update laravel/passport
只是强制 updating/installing 只是 Laravel Passport,而不触及其他包。