php 找不到 Laravel Passport 安装类

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/44787458/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-26 03:02:09  来源:igfitidea点击:

Laravel Passport Install Class Not Found

phplaravel-5laravel-passport

提问by shotdsherrif

I'm trying to configure my Laravel app to use Passport and have gotten stuck at loading the class in my AppServiceProvider.php. Here is what I've done...

我正在尝试将我的 Laravel 应用程序配置为使用 Passport,并且在我的 AppServiceProvider.php 中加载该类时遇到了困难。这是我所做的......

<?php // AuthServiceProvider.php

namespace S1\Providers;

use Laravel\Passport\PassportServiceProvider;
use Illuminate\Support\Facades\Gate;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as 
ServiceProvider;

class AuthServiceProvider extends ServiceProvider
{
...
    public function boot()
    {
        $this->registerPolicies();
        Passport::routes();
        Passport::tokensCan([
            'client' => 'this is a api client test'
        ]);
    }
}

.

.

<?php .  // auth.php
 ...
return [

    'guards' => [
        'web' => [
             'driver' => 'passport',
            'provider' => 'users',
        ],
], ...

.

.

<?php // app.php

'providers' => [
...
Laravel\Passport\PassportServiceProvider::class,
....

.

.

<?php  // AppServiceProvider.php

namespace S1\Providers;

use Illuminate\Support\ServiceProvider;
use S1\Providers\AppServiceProvider;
use Laravel\Passport\PassportServiceProvider;

class AppServiceProvider extends ServiceProvider
{

    public function register()
    {
        // Enable Laravel Migrations Generator for development only
        if ($this->app->environment() !== 'production') {
            $this->app->register(\Way\Generators\GeneratorsServiceProvider::class);
            $this->app->register(\Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class);
        }
    }
}

The result of this is getting the following error:

这样做的结果是出现以下错误:

  [Symfony\Component\Debug\Exception\FatalThrowableError]  
  Class 'S1\Providers\Passport' not found   

I did have this working but had to rebuid and now I can't get past this error. Something is going on with my namespaces but I can't figure out what.

我确实有这个工作,但不得不重新构建,现在我无法克服这个错误。我的命名空间发生了一些事情,但我不知道是什么。

回答by Srikanth Gopi

In your AuthServiceProvider.php, change:

在你的AuthServiceProvider.php,改变:

use Laravel\Passport\PassportServiceProvider;

to:

到:

use Laravel\Passport\Passport;

回答by stackMonk

Seems like you forgot to import passport, Try adding this

好像你忘记导入护照了,试试添加这个

use App\Passport\Passport;

to your AppServiceProvider

到您的 AppServiceProvider

<?php  // AppServiceProvider.php

namespace S1\Providers;

use App\Passport\Passport;

use Illuminate\Support\ServiceProvider;
use S1\Providers\AppServiceProvider;
use Laravel\Passport\PassportServiceProvider;

class AppServiceProvider extends ServiceProvider
{

    public function register()
    {
        // Enable Laravel Migrations Generator for development only
        if ($this->app->environment() !== 'production') {
            $this->app->register(\Way\Generators\GeneratorsServiceProvider::class);
            $this->app->register(\Xethron\MigrationsGenerator\MigrationsGeneratorServiceProvider::class);
        }
    }
}

回答by pawan kumar

<?php

namespace App\Providers;

use Laravel\Passport\Passport;

use Illuminate\Support\Facades\Gate;
use Laravel\Passport\PassportServiceProvider;
use Illuminate\Foundation\Support\Providers\AuthServiceProvider as ServiceProvider;

class AuthServiceProvider extends ServiceProvider
{
    /**
     * The policy mappings for the application.
     *
     * @var array
     */
    protected $policies = [
        'App\Model' => 'App\Policies\ModelPolicy',
    ];

    /**
     * Register any authentication / authorization services.
     *
     * @return void
     */
    public function boot()
    {
        $this->registerPolicies();

        Passport::routes();

        //
    }
}

回答by doncadavona

Install the proper Passportversion for your specific Laravelversion. Say you have Laravel 5.5, install Passport 4.0:

Passport为您的特定Laravel版本安装正确的版本。假设你有 Laravel 5.5,安装 Passport 4.0:

composer require laravel/passport=~4.0

composer require laravel/passport=~4.0

To check your Laravel version:

要检查您的 Laravel 版本:

php artisan --version

php artisan --version

or see "laravel/framework": "5.5.*",under the require object in composer.json.

"laravel/framework": "5.5.*",composer.json.

回答by tryHendri

Please check your composer.json, did the laravel/passport include it or not into "require" like this :

请检查您的composer.json,laravel/passport 是否将其包含在“require”中,如下所示:

"require": {
        "php": ">=5.6.4",
        "laravel/framework": "5.4.*",
        "laravel/passport": "^3.0",
        "laravel/tinker": "~1.0"
 },

if not re-run

如果不重新运行

composer require laravel/passport

作曲家需要 Laravel/护照