web-dev-qa-db-ja.com

Laravel Passport Install Class Not Found

私は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);
        }
    }
}

この結果、次のエラーが発生します。

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

私はこれを機能させましたが、再構築しなければならなかったので、今ではこのエラーを乗り越えることができません。私の名前空間で何かが起こっていますが、何がわからないのです。

7
shotdsherrif

あなたのAuthServiceProvider.php、 変化する:

use Laravel\Passport\PassportServiceProvider;

に:

use Laravel\Passport\Passport;
24
Srikanth Gopi

パスポートのインポートを忘れたようです。追加してみてください

use App\Passport\Passport;

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);
        }
    }
}
8
stackMonk

特定のPassportバージョンに適切なLaravelバージョンをインストールします。 Laravel 5.5、Passport 4.0のインストール:

composer require laravel/passport=~4.0

Laravel=バージョンを確認するには:

php artisan --version

または、"laravel/framework": "5.5.*",のrequireオブジェクトの下にあるcomposer.jsonを参照してください。

3
doncadavona

composer.jsonを確認してください。laravel/ passportに次のように "require"が含まれているかどうかがわかります。

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

再実行しない場合

作曲家にはlaravel/passportが必要です

2
tryHendri
<?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();

        //
    }
}
0
pawan kumar