Class Database\Seeds\PermissionsTableSeeder 不存在

Class Database\Seeds\PermissionsTableSeeder does not exist

我已经签出,class PermissionsTableSeeder 存在路径:Database\Seeds\PermissionsTableSeeder.

此外,我试过:

composer dump-autoload

php artisan cache:clear

当我 运行 命令时:php artisan db:seed 它给了我一个例外:

ReflectionException : Class Database\Seeds\PermissionsTableSeeder does not exist

at C:\Projects\secure_secure\vendor\laravel\framework\src\Illuminate\Container\Container.php:790 786| if ($concrete instanceof Closure) { 787| return $concrete($this, $this->getLastParameterOverride()); 788| } 789|

790| $reflector = new ReflectionClass($concrete); 791| 792| // If the type is not instantiable, the developer is attempting to resolve 793| // an abstract type such as an Interface or Abstract Class and there is 794| // no binding registered for the abstractions so we need to bail out.

异常跟踪:

1
ReflectionClass::__construct("Database\Seeds\PermissionsTableSeeder") C:\Projects\secure_secure\vendor\laravel\framework\src\Illuminate\Container\Container.php:790

2
Illuminate\Container\Container::构建("Database\Seeds\PermissionsTableSeeder") C:\Projects\secure_secure\vendor\laravel\framework\src\Illuminate\Container\Container.php:667

如何解决?

laravel中没有Database\Seeds\命名空间,播种器默认没有命名空间。

请检查DatabaseSeeder.php你应该有这个功能:

public function run()
{
    .....
    $this->call(PermissionsTableSeeder::class);
}

还要检查您是否没有将任何命名空间分配给DatabaseSeederclass或PermissionsTableSeeder class.

您还应该删除 DatabaseSeeder.php 中以 use Database\Seeds 开头的任何行,因为 命名空间 不存在。

我改了database/seeds/DatabaseSeeder.php

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
use Database\Seeds\PermissionsTableSeeder;
use Database\Seeds\RolesTableSeeder;
use Database\Seeds\ConnectRelationshipsSeeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Model::unguard();

            $this->call(PermissionsTableSeeder::class);
            $this->call(RolesTableSeeder::class);
            $this->call(ConnectRelationshipsSeeder::class);
            //$this->call('UsersTableSeeder');

        Model::reguard();
    }
}

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;
use Database\Seeds\PermissionsTableSeeder;
use Database\Seeds\RolesTableSeeder;
use Database\Seeds\ConnectRelationshipsSeeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        Model::unguard();

            $this->call('PermissionsTableSeeder');
            $this->call('RolesTableSeeder');
            $this->call('ConnectRelationshipsSeeder');
            //$this->call('UsersTableSeeder');

        Model::reguard();
    }
}

这修复了我的错误

php artisan db:seed
    Seeding: DefaultPermissionitemsTableSeeder
Seeding: DefaultRoleItemsTableSeeder
Seeding: DefaultConnectRelationshipsSeeder
Seeding: DefaultConnectRelationshipsSeeder - Role:Admin attached to Permission:view.users
Seeding: DefaultConnectRelationshipsSeeder - Role:Admin attached to Permission:create.users
Seeding: DefaultConnectRelationshipsSeeder - Role:Admin attached to Permission:edit.users
Seeding: DefaultConnectRelationshipsSeeder - Role:Admin attached to Permission:delete.users
Seeding: PermissionsTableSeeder

   ReflectionException  : Class Database\Seeds\RolesTableSeeder does not exist

  at D:\Work\Coding\Laravel\Epox\vendor\laravel\framework\src\Illuminate\Container\Container.php:788
    784|         if ($concrete instanceof Closure) {
    785|             return $concrete($this, $this->getLastParameterOverride());
    786|         }
    787|
  > 788|         $reflector = new ReflectionClass($concrete);
    789|
    790|         // If the type is not instantiable, the developer is attempting to resolve
    791|         // an abstract type such as an Interface or Abstract Class and there is
    792|         // no binding registered for the abstractions so we need to bail out.

  Exception trace:

  1   ReflectionClass::__construct("Database\Seeds\RolesTableSeeder")
      D:\Work\Coding\Laravel\Epox\vendor\laravel\framework\src\Illuminate\Container\Container.php:788

  2   Illuminate\Container\Container::build("Database\Seeds\RolesTableSeeder")
      D:\Work\Coding\Laravel\Epox\vendor\laravel\framework\src\Illuminate\Container\Container.php:667

  Please use the argument -v to see more details.

php artisan db:seed
    Seeding: DefaultPermissionitemsTableSeeder
Seeding: DefaultRoleItemsTableSeeder
Seeding: DefaultConnectRelationshipsSeeder
Seeding: DefaultConnectRelationshipsSeeder - Role:Admin attached to Permission:view.users
Seeding: DefaultConnectRelationshipsSeeder - Role:Admin attached to Permission:create.users
Seeding: DefaultConnectRelationshipsSeeder - Role:Admin attached to Permission:edit.users
Seeding: DefaultConnectRelationshipsSeeder - Role:Admin attached to Permission:delete.users
Seeding: PermissionsTableSeeder
Seeding: RolesTableSeeder
Seeding: ConnectRelationshipsSeeder
php artisan --version
    Laravel Framework 5.8.36