Laravel 11 Целевой класс [роль] не существует (spatie/laravel-permission)Php

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Laravel 11 Целевой класс [роль] не существует (spatie/laravel-permission)

Сообщение Anonymous »

Я разрабатываю приложение REST API laravel 11. Я установил spatie/laravel-permission, и я могу успешно создать пользователя и назначить роль, также при входе в систему. Я могу успешно захватить токен и роль, но когда я получу доступ Сопоставление маршрута с администратором роли получаю сообщение об ошибке Целевой класс [роль] не существует вот мой api.php

Код: Выделить всё

use Illuminate\Http\Request;
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\AuthController;
use App\Http\Controllers\UserController;

Route::middleware('auth:api')->group(function () {

Route::middleware('role:admin')->group(function () {
Route::apiResource('users', UserController::class);
}
}
и вот мой пользовательский контроллер, чтобы получить только пользователей

Код: Выделить всё

use App\Models\User;
use Illuminate\Http\Request;
use Spatie\Permission\Models\Role;
use Spatie\Permission\Models\Permission;

class UserController extends Controller
{
public function index()
{
$users = User::with('roles')->get();

// Transform the response to include user details and their roles
$response = $users->map(function ($user) {
return [
'id' => $user->id,
'first_name' => $user->first_name,
'last_name' => $user->last_name,
'email' => $user->email,
'phone_number' => $user->phone_number,
'address' => $user->address,
'roles' => $user->roles->pluck('name')
];
});

return response()->json($response);
}
}
моя модель user.php

Код: Выделить всё

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;
use Illuminate\Notifications\Notifiable;
use Tymon\JWTAuth\Contracts\JWTSubject;
use Spatie\Permission\Traits\HasRoles;

class User extends Authenticatable implements JWTSubject
{
use HasFactory, Notifiable, HasRoles;

....
}
я пытался использовать в своем api.php

Код: Выделить всё

use Spatie\Permission\Middlewares\RoleMiddleware;

Route::middleware('auth:api')->group(function () {

Route::middleware([RoleMiddleware::class . ':admin'])->group(function () {
Route::apiResource('users', UserController::class);
}
}
проблему все равно не решило. Также в laravel 11 нет http/kernel.php

Подробнее здесь: https://stackoverflow.com/questions/790 ... permission
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Laravel 11 Целевой класс [роль] не существует (spatie/laravel-permission)
    Anonymous » » в форуме Php
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Laravel 11 Целевой класс [роль] не существует (spatie/laravel-permission)
    Anonymous » » в форуме Php
    0 Ответы
    23 Просмотры
    Последнее сообщение Anonymous
  • Целевой класс [Spatie\Permission\Middlewares\PermissionMiddleware] не существует.
    Anonymous » » в форуме Php
    0 Ответы
    20 Просмотры
    Последнее сообщение Anonymous
  • Целевой класс [currentTenant] не существует (Spatie/Multitenancy)
    Anonymous » » в форуме Php
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Целевой класс [роль] не существует в маршрутах промежуточного программного обеспечения Laravel 11
    Anonymous » » в форуме Php
    0 Ответы
    14 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Php»