dusterio/lumen-passport

Lumen-passport throws FatalThrowableError - Call to undefined method Laravel\Lumen\Application::group()

marvinjude opened this issue · 3 comments

i followed all the steps in the docs but i can't still get lumen passport to work,
i keep getting this error:

(1/1) FatalThrowableError
    Call to undefined method Laravel\Lumen\Application::group()

my routes/web.php looks like so

<?php

$router->get('/', function () use ($router) {
    return $router->app->version();
});

 $router->group(['middleware' => 'auth:api'], function () use ($router) {
    $router->get('/user', 'UsersController@all');
    $router->get('/user/{id}', 'UsersController@get');
    $router->post('/user', 'UsersController@add');
    $router->put('/user/{id}', 'UsersController@put');
    $router->delete('/user/{id}', 'UsersController@remove');
});

my app/provider/AuthServiceProvider.php

    public function boot()
    {
   
              LumenPassport::routes($this->app);
    }
}

my bootstrap/web.php looks like this

<?php

require_once __DIR__.'/../vendor/autoload.php';

try {
    (new Dotenv\Dotenv(__DIR__.'/../'))->load();
} catch (Dotenv\Exception\InvalidPathException $e) {
    //
}



$app = new Laravel\Lumen\Application(
    realpath(__DIR__.'/../')
);

$app->configure('auth');

$app->withFacades();

$app->withEloquent();



$app->singleton(
    Illuminate\Contracts\Debug\ExceptionHandler::class,
    App\Exceptions\Handler::class
);

$app->singleton(
    Illuminate\Contracts\Console\Kernel::class,
    App\Console\Kernel::class
);



// $app->middleware([
//    App\Http\Middleware\ExampleMiddleware::class
// ]);

$app->routeMiddleware([
    'auth' => App\Http\Middleware\Authenticate::class,
]);



$app->register(App\Providers\AppServiceProvider::class);
// $app->register(App\Providers\AuthServiceProvider::class);
// $app->register(App\Providers\EventServiceProvider::class);

$app->register(Laravel\Passport\PassportServiceProvider::class);
$app->register(Dusterio\LumenPassport\PassportServiceProvider::class);

Dusterio\LumenPassport\LumenPassport::routes($app);
Dusterio\LumenPassport\LumenPassport::routes($app, ['prefix'=> 'api/v1']);



$app->router->group([
    'namespace' => 'App\Http\Controllers',
], function ($router) {
    require __DIR__.'/../routes/web.php';
});

return $app;

config/auth.php

<?php 
return
[ 'defaults' => [
        'guard' => 'api',
        'passwords' => 'users',
    ],
 
    'guards' => [
        'api' => [
            'driver' => 'passport',
            'provider' => 'users',
        ],
    ],
 
    'providers' => [
        'users' => [
            'driver' => 'eloquent',
            'model' => \App\Models\User::class
        ]
    ]
];

Hey! You should send $this->app->router instead of $this->app because group method dose not exists for Laravel\Lumen\Application class.

public function boot() { LumenPassport::routes($this->app->router); }

So I Belive this will fix your issue.

same here