web-dev-qa-db-fra.com

Laravel Classe d'installation du passeport introuvable

J'essaie de configurer mon application Laravel pour qu'elle utilise Passport et je suis bloquée lors du chargement de la classe dans mon AppServiceProvider.php. Voici ce que j'ai fait ...

<?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);
        }
    }
}

Le résultat de cela devient l'erreur suivante:

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

Cela fonctionnait, mais je devais vérifier et maintenant je ne peux pas dépasser cette erreur. Quelque chose se passe dans mes espaces de noms mais je ne peux pas comprendre quoi.

5
shotdsherrif

Dans votre AuthServiceProvider.php, changez:

use Laravel\Passport\PassportServiceProvider;

à:

use Laravel\Passport\Passport;
14
Srikanth Gopi

On dirait que vous avez oublié d'importer votre passeport, essayez d'ajouter ceci

use App\Passport\Passport;

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

Veuillez vérifier votrecomposer.json, est-ce que laravel/passport l'a inclus ou non dans "require" comme ceci:

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

sinon re-run 

le compositeur doit avoir un passeport/laravel

2
tryHendri

Installez la version Passport appropriée pour votre version Laravel spécifique. Disons que vous avez Laravel 5.5, installez Passport 4.0:

composer require laravel/passport=~4.0

Pour vérifier votre version de Laravel:

php artisan --version

ou consultez "laravel/framework": "5.5.*", sous l'objet require dans composer.json.

1
doncadavona

espace de noms App\Providers;

utilisez Laravel\Passport\Passport;

utilisez Illuminate\Support\Facades\Gate; utilisez Laravel\Passport\PassportServiceProvider; utilisez Illuminate\Foundation\Support\Providers\AuthServiceProvider en tant que ServiceProvider;

la classe AuthServiceProvider étend ServiceProvider { /** * Les mappages de stratégie pour l'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