Laravel-permission: Class Spatie\Permission\Middlewares\RoleMiddleware does not exist

Created on 10 Aug 2017  路  4Comments  路  Source: spatie/laravel-permission

I just installed package successfully! Gives exception while using 'middleware' => ['role:admin'],
There is no middleware folder in vendor/spatie/laravel-permission/src/

`

Class Spatie\Permission\MiddlewaresRoleMiddleware does not exist

in聽Container.php聽(line 729)
at聽ReflectionClass->__construct('Spatie\Permission\Middlewares\RoleMiddleware')in聽Container.php聽(line 729)
at聽Container->build('Spatie\Permission\Middlewares\RoleMiddleware')in聽Container.php聽(line 608)
at聽Container->resolve('Spatie\Permission\Middlewares\RoleMiddleware')in聽Container.php聽(line 575)
at聽Container->make('Spatie\Permission\Middlewares\RoleMiddleware')in聽Application.php聽(line 728)
at聽Application->make('Spatie\Permission\Middlewares\RoleMiddleware')in聽Pipeline.php聽(line 138)
at聽Pipeline->Illuminate\Pipeline{closure}(object(Request))in聽Pipeline.php聽(line 53)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽SubstituteBindings.php聽(line 41)
at聽SubstituteBindings->handle(object(Request),聽object(Closure))in聽Pipeline.php聽(line 148)
at聽Pipeline->Illuminate\Pipeline{closure}(object(Request))in聽Pipeline.php聽(line 53)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽VerifyCsrfToken.php聽(line 65)
at聽VerifyCsrfToken->handle(object(Request),聽object(Closure))in聽Pipeline.php聽(line 148)
at聽Pipeline->Illuminate\Pipeline{closure}(object(Request))in聽Pipeline.php聽(line 53)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽ShareErrorsFromSession.php聽(line 49)
at聽ShareErrorsFromSession->handle(object(Request),聽object(Closure))in聽Pipeline.php聽(line 148)
at聽Pipeline->Illuminate\Pipeline{closure}(object(Request))in聽Pipeline.php聽(line 53)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽StartSession.php聽(line 64)
at聽StartSession->handle(object(Request),聽object(Closure))in聽Pipeline.php聽(line 148)
at聽Pipeline->Illuminate\Pipeline{closure}(object(Request))in聽Pipeline.php聽(line 53)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽AddQueuedCookiesToResponse.php聽(line 37)
at聽AddQueuedCookiesToResponse->handle(object(Request),聽object(Closure))in聽Pipeline.php聽(line 148)
at聽Pipeline->Illuminate\Pipeline{closure}(object(Request))in聽Pipeline.php聽(line 53)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽EncryptCookies.php聽(line 59)
at聽EncryptCookies->handle(object(Request),聽object(Closure))in聽Pipeline.php聽(line 148)
at聽Pipeline->Illuminate\Pipeline{closure}(object(Request))in聽Pipeline.php聽(line 53)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽Pipeline.php聽(line 102)
at聽Pipeline->then(object(Closure))in聽Router.php聽(line 576)
at聽Router->runRouteWithinStack(object(Route),聽object(Request))in聽Router.php聽(line 535)
at聽Router->dispatchToRoute(object(Request))in聽Router.php聽(line 513)
at聽Router->dispatch(object(Request))in聽Kernel.php聽(line 176)
at聽Kernel->Illuminate\Foundation\Http{closure}(object(Request))in聽Pipeline.php聽(line 30)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽Debugbar.php聽(line 51)
at聽Debugbar->handle(object(Request),聽object(Closure))in聽Pipeline.php聽(line 148)
at聽Pipeline->Illuminate\Pipeline{closure}(object(Request))in聽Pipeline.php聽(line 53)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽TransformsRequest.php聽(line 30)
at聽TransformsRequest->handle(object(Request),聽object(Closure))in聽Pipeline.php聽(line 148)
at聽Pipeline->Illuminate\Pipeline{closure}(object(Request))in聽Pipeline.php聽(line 53)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽TransformsRequest.php聽(line 30)
at聽TransformsRequest->handle(object(Request),聽object(Closure))in聽Pipeline.php聽(line 148)
at聽Pipeline->Illuminate\Pipeline{closure}(object(Request))in聽Pipeline.php聽(line 53)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽ValidatePostSize.php聽(line 27)
at聽ValidatePostSize->handle(object(Request),聽object(Closure))in聽Pipeline.php聽(line 148)
at聽Pipeline->Illuminate\Pipeline{closure}(object(Request))in聽Pipeline.php聽(line 53)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽CheckForMaintenanceMode.php聽(line 46)
at聽CheckForMaintenanceMode->handle(object(Request),聽object(Closure))in聽Pipeline.php聽(line 148)
at聽Pipeline->Illuminate\Pipeline{closure}(object(Request))in聽Pipeline.php聽(line 53)
at聽Pipeline->IlluminateRouting{closure}(object(Request))in聽Pipeline.php聽(line 102)
at聽Pipeline->then(object(Closure))in聽Kernel.php聽(line 151)
at聽Kernel->sendRequestThroughRouter(object(Request))in聽Kernel.php聽(line 116)
at聽Kernel->handle(object(Request))in聽index.php聽(line 53)

`

Most helpful comment

@nille Those errors are because of the backpack/permissionmanager package's limitations which make it work only with v1.x of this package.

If you want to use the backpack package, you'll need to specify the old 1.x version of spatie/laravel-permission:

composer require spatie/laravel-permission:^1

All 4 comments

@bbdangar Hi! I suspect that you have the version v1.* of this package. This middleware is supported since version 2.4.

You can run this command to get your current version:

composer info spatie/laravel-permission

The v2 require php 7.x. If you already have php 7, perhaps this issue was in the file composer.json of your project.

Edit the composer.json and find this part:

        "platform": {
            "php": "5.6.4"
        }

If exists, then replace this part:

    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true,
        "platform": {
            "php": "5.6.4"
        }
    }

for this other:

    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    }

then run this command for upgrade the package at v2:

composer require spatie/laravel-permission

Please, let me known if this resolve this issue. I think that this issue occur when start a new project laravel with command laravel new ...

True, this is the issue of PHP version, thanks @cesargb

I did this as well but now instead I get this error message when running composer require spatie/laravel-permission:

Using version ^2.4 for spatie/laravel-permission
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - backpack/permissionmanager 2.1.18 requires spatie/laravel-permission ^1.4 -> satisfiable by spatie/laravel-permission[1.10.0, 1.11.0, 1.11.1, 1.12.0, 1.4.0, 1.5.0, 1.5.1, 1.5.2, 1.5.3, 1.6.0, 1.6.1, 1.7.0, 1.8.0, 1.9.0, v1.x-dev] but these conflict with your requirements or minimum-stability.
    - backpack/permissionmanager 2.1.18 requires spatie/laravel-permission ^1.4 -> satisfiable by spatie/laravel-permission[1.10.0, 1.11.0, 1.11.1, 1.12.0, 1.4.0, 1.5.0, 1.5.1, 1.5.2, 1.5.3, 1.6.0, 1.6.1, 1.7.0, 1.8.0, 1.9.0, v1.x-dev] but these conflict with your requirements or minimum-stability.
    - backpack/permissionmanager 2.1.18 requires spatie/laravel-permission ^1.4 -> satisfiable by spatie/laravel-permission[1.10.0, 1.11.0, 1.11.1, 1.12.0, 1.4.0, 1.5.0, 1.5.1, 1.5.2, 1.5.3, 1.6.0, 1.6.1, 1.7.0, 1.8.0, 1.9.0, v1.x-dev] but these conflict with your requirements or minimum-stability.
    - Installation request for backpack/permissionmanager (locked at 2.1.18, required as ^2.1) -> satisfiable by backpack/permissionmanager[2.1.18].


Installation failed, reverting ./composer.json to its original content.

@nille Those errors are because of the backpack/permissionmanager package's limitations which make it work only with v1.x of this package.

If you want to use the backpack package, you'll need to specify the old 1.x version of spatie/laravel-permission:

composer require spatie/laravel-permission:^1

Was this page helpful?
0 / 5 - 0 ratings

Related issues

ghost picture ghost  路  3Comments

bhulsman picture bhulsman  路  3Comments

enghelewa picture enghelewa  路  4Comments

MichalKrakow picture MichalKrakow  路  4Comments

younus93 picture younus93  路  4Comments