#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:
- Прежде всего убедитесь, что santigarcor/ laratrust установлен / указан в файле composer.json. если нет, отредактируйте свой файл composer.json «require»: {
где разместить santigarcor / laratrust в composer. json
-
Затем запустите / повторно запустите
composer install
это, чтобы убедиться, что Laratrust установлен в вашем проекте. -
После его установки затем
run composer dump-autoload
илиsudo composer dump-autoload
[для некоторых пользователей Mac]
4.Затем PHP artisan vendor:publish --tag="laratrust"
Вы должны быть готовы к этому!
Ответ №2:
Добавить
пространство имен DatabaseSeeders;
вверху в ( LaratrustSeeder.php ) файл