spatie/laravel-permission

Middleware Package installation causing Target class [Spatie\Permission\Middlewares\RoleMiddleware] does not exist.

emekach opened this issue · 1 comments

This is what is on the documentation in v5 https://spatie.be/docs/laravel-permission/v5/basic-usage/middleware
gives this error [Spatie\Permission\Middlewares\RoleMiddleware] does not exist.

LARAVEL 9 (AND OLDER)

protected $routeMiddleware = [
// ...
'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class,
];

LARAVEL 10
protected $middlewareAliases = [
// ...
'role' => \Spatie\Permission\Middlewares\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middlewares\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middlewares\RoleOrPermissionMiddleware::class,
];

corrected code should be

LARAVEL 9 (AND OLDER)

protected $routeMiddleware = [
// ...
'role' => \Spatie\Permission\Middleware\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middleware\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middleware\RoleOrPermissionMiddleware::class,
];

LARAVEL 10
protected $middlewareAliases = [
// ...
'role' => \Spatie\Permission\Middleware\RoleMiddleware::class,
'permission' => \Spatie\Permission\Middleware\PermissionMiddleware::class,
'role_or_permission' => \Spatie\Permission\Middleware\RoleOrPermissionMiddleware::class,
];

No. In v5 and older the namespace was plural Middlewares.
In v6 is was updated to singular: Middleware.