Laravel 5播种机类不存在

时间:2017-06-14 19:16:19

标签: php laravel-5 composer-php

我有一个新的Laravel装置。我已经从github存储库转移了代码,该存储库是Laravel项目,版本相同(5.3)。

一切正常,除了某些原因,数据库种子不会运行。

例如,我可以从新的Laravel安装中的github加载迁移进行迁移,就像我在首先将迁移推送到github的服务器上一样。

但我无法做public boolean requestForPermission() { boolean isPermissionOn = true; final int version = Build.VERSION.SDK_INT; if (version >= 23) { if (!canAccessExternalSd()) { isPermissionOn = false; requestPermissions(EXTERNAL_PERMS, EXTERNAL_REQUEST); } } return isPermissionOn; } public boolean canAccessExternalSd() { return (hasPermission(android.Manifest.permission.WRITE_EXTERNAL_STORAGE)); } private boolean hasPermission(String perm) { return (PackageManager.PERMISSION_GRANTED == ContextCompat.checkSelfPermission(this, perm)); } ,这意味着我漂亮的小数据库是空的! >:(

我得到: ReflectionException类不存在

我尝试过:

  1. php artisan db:seed
  2. php artisan optimize
  3. php artisan clear:cache
  4. composer clearcache
  5. 这些都没有解决我的问题。 composer dump-autoload中的所有内容拼写正确且类存在,它们在我的其他服务器上运行良好,而且,这个全新安装现在具有与我的原始服务器相同的所有文件,这要归功于Github。

    DatabaseSeeder.php:

    DatabaseSeeder

    编辑 - 堆栈跟踪:

    <?php
    
    use Illuminate\Database\Seeder;
    
    class DatabaseSeeder extends Seeder
    {
        /**
         * Run the database seeds.
         *
         * @return void
         */
        public function run()
        {
            $this->call(UserTableSeeder::class);
        }
    }
    

4 个答案:

答案 0 :(得分:0)

我通过选择一个单独的课来解决问题:

php artisan db:seed --class=UserTableSeeder

在没有任何争论的情况下反对db:seed,但我仍然想知道为什么必须这样做。

同样,我的代码中没有UserTablesSeeder,所以不知道为什么日志显示这是种子尝试,而我从未声明过。

UserTableSeeder中没有s的情况下始终Table

编辑现在,我的自定义中间件无法正常运行......新安装似乎是一个问题,不喜欢github的一些新代码...如果有人可以提供一个更好的答案,我很乐意接受。

答案 1 :(得分:0)

对于 Laravel 6.0 ,进行更改

$this->call(UserTableSeeder::class);

$this->call('UserTableSeeder');

是我的把戏吗?

答案 2 :(得分:0)

尝试运行

composer dump-autoload

尤其是如果您最近编辑了种子文件的名称

答案 3 :(得分:0)

我删除了种子文件,然后重新制作它,一切正常。