Выбран недопустимый тип

Я нашел хороший шаблон для Laravel7. "раппасофт / ларавел-шаблон".

  • Я пытаюсь понять, чего мне не хватает в моем коде?
  • сообщение об ошибке: "Выбран недопустимый тип".
  • Я добавил новый тип пользователя "менеджер" для следующих мест.
  1. приложение / Домены /Auth/Models/User.php

    public const TYPE_MANAGER = 'manager';
    public const TYPE_ADMIN = 'admin';
    public const TYPE_USER = 'user';
    
  2. приложение / Домены /Auth/Models/Traits/Attribute/RoleAttribute.php

     if ($this->isManager()) {
         return 'All';
      }
    
  3. приложение / Домены /Auth/Models/Traits/Methods/RoleMethod.php

      public function isManager(): bool
     {
     return $this->name ===   
     config('boilerplate.access.role.manager');
     }
    
  4. приложение / Домены /Auth/Models/Traits/Methods/UserMethod.php

      public function isManager(): bool
     {
      return $this->type === self::TYPE_MANAGER;
     }
     public function hasManagerAccess(): bool
     {
      return $this->isManager() &&  
      $this->hasRole(config('boilerplate.access.role.manager'));
     }
    
  5. приложение / Домены /Auth/Services/UserService.php

      public function update(User $user, array $data = []): User
      {
      DB::beginTransaction();
    
     try {
         $user->update([
                'type' => $user->isMasterAdmin() ?  
             $user->isManager() : $data['type'] ?? $user->type,
             'name' => $data['name'],
             'email' => $data['email'],
         ]);
    
  6. конфигурация / котел.php

         'role' => [
    
         'admin' => 'Administrator',
         'manager' => 'Manager',
         ],
    
  7. база данных / семена /Auth/PermssionSeeder.php

       // Create Roles
       Role::create([
         'id' => 1,
         'type' => User::TYPE_MANAGER,
         'name' => 'Manager',
       ]); 
    
  8. база данных / семена / Auth / RoleSeeder.php

        public function run()
       {
         $this->disableForeignKeys();    
      User::find(1)->assignRole(config('boilerplate.access.role.admin'));
     User::find(2)->assignRole(config('boilerplate.access.role.manager'));
    
     $this->enableForeignKeys();
    }
    

9) база данных / семена /Auth/UserSeeder.php

      // Add the Manager, user id of 2
         User::create([
        'type' => User::TYPE_MANAGER,
        'name' => 'manager',
        'email' => 'manager@manager.com',
        'password' => 'secret',
        'email_verified_at' => now(),
        'active' => true,
      ]);
  1. база данных / фабрики /RoleFactory.php

        $factory->define(Role::class, function (Faker  
        $faker) {
        return [
             'type' => $faker->randomElement([User::TYPE_MANAGER, User::TYPE_ADMIN, User::TYPE_USER]),
    'name' => $faker->word,
    ];
    });
    
  2. база данных / фабрики /UserFactory.php

        $factory->define(User::class, function (Faker 
        $faker) {
        return [
       'type' => $faker->randomElement(
        [User::TYPE_MANAGER, User::TYPE_ADMIN, User::TYPE_USER]),
    
    
       ];
       });
    
    
       $factory->state(User::class, 'manager', function () {
      return [
       'type' => User::TYPE_MANAGER,
      ];
      });
    
  3. база данных / миграции

  • Из таблиц db я вижу, что добавлен новый тип пользователя.

          Schema::create('users', function (Blueprint $table) {
          $table->bigIncrements('id');
          $table->enum('type',   
         [User::TYPE_MANAGER,User::TYPE_ADMIN,   
          User::TYPE_USER, User::TYPE_SYSTEM, User::TYPE_QUEST])->default(User::TYPE_USER);
    
  • И таблица разрешений:

      Schema::create($tableNames['permissions'], function (Blueprint $table) use ($tableNames) {
          $table->bigIncrements('id');
          $table->enum('type', [User::TYPE_MANAGER,User::TYPE_ADMIN, User::TYPE_USER, User::TYPE_SYSTEM, User::TYPE_QUEST]);
    
  • Таблица ролей:

        Schema::create($tableNames['roles'], function (Blueprint $table) {
          $table->bigIncrements('id');
          $table->enum('type', 
          [User::TYPE_MANAGER,User::TYPE_ADMIN, 
           User::TYPE_USER, User::TYPE_SYSTEM, User::TYPE_QUEST]);
    
  • Спасибо, Мика.

0 ответов

Другие вопросы по тегам