当前位置: 代码迷 >> 综合 >> laravel的 db:seed 保存,[ReflectionException] Class AdminUsersTableSeeder does not exist
  详细解决方案

laravel的 db:seed 保存,[ReflectionException] Class AdminUsersTableSeeder does not exist

热度:68   发布时间:2023-12-13 16:58:15.0

今天使用了下 seeder 来填充数据,常用的几个命令:  
    填充器默认路径:  
        database/seeders/  
    系统自带:  
        DatabaseSeeder.php  
    填充器执行,默认的调用的是 'run()' 方法  
    创建:  
        php artisan make:seeder AdminUserTableSeeder  
    运行:  
        php artisan db:seed     // 默认调用的是 'DatabaseSeeder->run()',我们可在内部调用其它的填充器  
        php artisan db:seed --class=AdminUserTableSeeder        // 调用指定的填充器  
    重建数据库:  
        php artisan migrate:refresh --seed  
  
    今天主要描述一个问题:  
        1.我先调用:  
            php artisan make:seeder AdminUserTableSeeder  
        2.生成一个 'AdminUserTableSeeder' 类,但是发现,应该命名为 'AdminUsersTableSeeder',用户应该为复数。然后我就手动修改了文件&文件内部的类名。  
        3.执行:  
            php artisan db:seed  
          直接报错:  
            [ReflectionException] Class AdminUsersTableSeeder does not exist  
  
    解决方法:  
        composer dump-autoload  
  
    具体可查看:  
        'http://stackoverflow.com/questions/30176194/laravel-5-db-seed-class-not-found'  
  
    看了别人解释,立马想到,php artisan 命名,可能生成了一些 composer 相关的缓存,去 'vendor/composer/' 发现了几个autoload_xx.php文件,这里就是 composer 自动加载的文件列表!也同 'composer.json' 中的 'autoload' 的配置,有很大关联!  
  
    总结:  
        本质上还是不懂composer、以及 php artisan 命令的本质!这里随便搜了下,有篇文章,我也没看,有时间再看:  
        https://laravel-china.org/topics/1002  

  相关解决方案