kayrules / lumen-passport-mongodb

Making Laravel Passport work with Lumen
MIT License
6 stars 7 forks source link

Trait 'MoeenBasra\\LaravelPassportMongoDB\\HasApiTokens' not found #7

Closed darshan1tecstub closed 5 years ago

darshan1tecstub commented 5 years ago

{ "success": false, "status": 500, "message": "Trait 'MoeenBasra\LaravelPassportMongoDB\HasApiTokens' not found" }

lucascardial commented 5 years ago

Please, show your implementation

darshan1tecstub commented 5 years ago

`composer.json { "name": "laravel/lumen", "description": "The Laravel Lumen Framework.", "keywords": ["framework", "laravel", "lumen"], "license": "MIT", "type": "project", "require": { "php": ">=7.1.3", "kayrules/lumen-passport-mongodb": "^0.4.0", "laravel/lumen-framework": "5.8.*", "vlucas/phpdotenv": "^3.3" }, "require-dev": { "fzaninotto/faker": "^1.4", "phpunit/phpunit": "^7.0", "mockery/mockery": "^1.0" }, "autoload": { "classmap": [ "database/seeds", "database/factories" ], "psr-4": { "App\": "app/" } }, "autoload-dev": { "classmap": [ "tests/" ] }, "scripts": { "post-root-package-install": [ "@php -r \"file_exists('.env') || copy('.env.example', '.env');\"" ] }, "config": { "preferred-install": "dist", "sort-packages": true, "optimize-autoloader": true }, "minimum-stability": "dev", "prefer-stable": true }

app/User.php

namespace App;

use Illuminate\Auth\Authenticatable; use Laravel\Lumen\Auth\Authorizable; use Illuminate\Database\Eloquent\Model; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract; use MoeenBasra\LaravelPassportMongoDB\HasApiTokens;

class User extends Model implements AuthenticatableContract, AuthorizableContract { use HasApiTokens, Authenticatable, Authorizable;

protected $fillable = [
    'name', 'email',
];
protected $hidden = [
    'password',
];

}

bootstrap/app.php

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

(new Laravel\Lumen\Bootstrap\LoadEnvironmentVariables( dirname(DIR) ))->bootstrap();

$app = new Laravel\Lumen\Application( dirname(DIR) );

$app->withFacades(); // Register jenssegers/mongodb service provider before $app->withEloquent() $app->register(Jenssegers\Mongodb\MongodbServiceProvider::class);

$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(Kayrules\LumenPassport\PassportServiceProvider::class);

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

return $app; `

darshan1tecstub commented 5 years ago

Now I got the solution my self, I have used below given code there

`namespace App;

use Illuminate\Auth\Authenticatable; use Laravel\Lumen\Auth\Authorizable; use Jenssegers\Mongodb\Eloquent\Model as Eloquent; use Illuminate\Contracts\Auth\Authenticatable as AuthenticatableContract; use Illuminate\Contracts\Auth\Access\Authorizable as AuthorizableContract; use LucasCardial\LaravelPassportMongoDB\HasApiTokens;

class User extends Eloquent implements AuthenticatableContract, AuthorizableContract { use HasApiTokens, Authenticatable, Authorizable;

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'email', 'password', 'api_token',
];

/**
 * The attributes excluded from the model's JSON form.
 *
 * @var array
 */
protected $hidden = [
      'password', 'api_token',
];

}`

I have used use LucasCardial\LaravelPassportMongoDB\HasApiTokens; instated of use MoeenBasra\LaravelPassportMongoDB\HasApiTokens;