класс LaratrustSeeder не существует

#php #laravel #web #back

#php #laravel #веб #Назад

Вопрос:

Я пытался очистить кеш и конфигурацию, выполнить загрузку и выгрузку всего, но продолжает говорить мне

класс Laratrust не существует

Я использую laravel 8 какие-либо решения??

это LaratrustSeeder.php

     <?php
use IlluminateSupportFacadesSchema;
use IlluminateDatabaseSeeder;
use IlluminateSupportFacadesDB;
use IlluminateSupportStr;
use IlluminateSupportFacadesConfig;

class LaratrustSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return  void
     */
    public function run()
    {
        $this->truncateLaratrustTables();

        $config = config('laratrust_seeder.roles_structure');
        $mapPermission = collect(config('laratrust_seeder.permissions_map'));

        foreach ($config as $key => $modules) {

            // Create a new role
            $role = AppModelsRole::firstOrCreate([
                'name' => $key,
                'display_name' => ucwords(str_replace('_', ' ', $key)),
                'description' => ucwords(str_replace('_', ' ', $key))
            ]);
            $permissions = [];

            $this->command->info('Creating Role '. strtoupper($key));

            // Reading role permission modules
            foreach ($modules as $module => $value) {

                foreach (explode(',', $value) as $p => $perm) {

                    $permissionValue = $mapPermission->get($perm);

                    $permissions[] = AppModelsPermission::firstOrCreate([
                        'name' => $module . '-' . $permissionValue,
                        'display_name' => ucfirst($permissionValue) . ' ' . ucfirst($module),
                        'description' => ucfirst($permissionValue) . ' ' . ucfirst($module),
                    ])->id;

                    $this->command->info('Creating Permission to '.$permissionValue.' for '. $module);
                }
            }

            // Attach all permissions to the role
            $role->permissions()->sync($permissions);

            if(Config::get('laratrust_seeder.create_users')) {
                $this->command->info("Creating '{$key}' user");
                // Create default user for each role
                $user = AppModelsUser::create([
                    'name' => ucwords(str_replace('_', ' ', $key)),
                    'email' => $key.'@app.com',
                    'password' => bcrypt('password')
                ]);
                $user->attachRole($role);
            }

        }
    }

    /**
     * Truncates all the laratrust tables and the users table
     *
     * @return    void
     */
    public function truncateLaratrustTables()
    {
        $this->command->info('Truncating User, Role and Permission tables');
        Schema::disableForeignKeyConstraints();
        DB::table('permission_role')->truncate();
        DB::table('permission_user')->truncate();
        DB::table('role_user')->truncate();
        if(Config::get('laratrust_seeder.truncate_tables')) {
            AppModelsRole::truncate();
            AppModelsPermission::truncate();
        }
        if(Config::get('laratrust_seeder.truncate_tables') amp;amp; Config::get('laratrust_seeder.create_users')) {
            AppModelsUser::truncate();
        }
        Schema::enableForeignKeyConstraints();
    }
}



at configapp

added this to providers

            'LaratrustLaratrustServiceProvider::class,'

and this to alias

        'Laratrust' => LaratrustLaratrustFacade::class,
  

DatabaseSeeder.php файл

         <?php
    
    namespace DatabaseSeeders;
    
    
    use IlluminateDatabaseSeeder;
    use LaratrustSeeder;
    
    class DatabaseSeeder extends Seeder
    {
        /**
         * Seed the application's database.
         *
         * @return void
         */
        public function run()
        {
            // User::factory(10)->create();
            $this->call(LaratrustSeeder::class);
        }
    }
  

Комментарии:

1. Добро пожаловать в SO .. переименовать LatatrustSeeder.php в LaratrustSeeder.php

2. stll сообщает мне об этой ошибке, я попробовал composer dump-автозагрузку, а затем php artisan db: Seed

3. Пожалуйста, проверьте, не пропускает ли ваш LaratrustSeeder класс пространство имен?

4. что такое возврат ошибки?

5. да, нет пространства имен

Ответ №1:

  1. Прежде всего убедитесь, что santigarcor/ laratrust установлен / указан в файле composer.json. если нет, отредактируйте свой файл composer.json «require»: {

где разместить santigarcor / laratrust в composer. json

  1. Затем запустите / повторно запустите composer install это, чтобы убедиться, что Laratrust установлен в вашем проекте.

  2. После его установки затем run composer dump-autoload или sudo composer dump-autoload [для некоторых пользователей Mac]

4.Затем PHP artisan vendor:publish --tag="laratrust"

Вы должны быть готовы к этому!

Ответ №2:

Добавить

пространство имен DatabaseSeeders;

вверху в ( LaratrustSeeder.php ) файл