类'UserTableSeeder'不存在 - Laravel 5.0 [php artisan db:seed]

thi*_*ver 25 php laravel

我正在尝试一个基本的php工匠db:seed迁移我的数据库但它一直在cmd中返回标题错误 - [ReflectionException]类'UserTableSeeder'不存在

我试过的事情

  • 更改'UserTableSeeder.php'文件'命名空间Database\seeds;'的命名空间 并'使用Database\seeds\UserTableSeeder;' 在'DatabaseSeeder.php'文件中

以下是迁移

<?php

use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;

    class CreateUsersTable extends Migration {

        /**
         * Run the migrations.
         *
         * @return void
         */
        public function up()
        {
            Schema::create('users', function(Blueprint $table)
            {
                $table->increments('id');
                $table->string('name');
                $table->string('email')->unique();
                $table->string('password', 60);
                $table->rememberToken();
                $table->timestamps();
            });
        }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::drop('users');
    }
}
Run Code Online (Sandbox Code Playgroud)

以下是UserTableSeeder.php

<?php
use App\User;
use Illuminate\Database\Seeder;

class UserTableSeeder extends Seeder {

    public function run()
    {
        DB::table('users')->delete();

        User::create(['email' => 'foo@bar.com']);
    }
}
Run Code Online (Sandbox Code Playgroud)

下面是DatabaseSeeder.php

<?php

use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder {

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

        $this->call('UserTableSeeder');
    }
}
Run Code Online (Sandbox Code Playgroud)

Nic*_*ick 69

composer dumpautoload在数据库/文件夹中创建文件后运行.

为什么?

检查composer.json自动加载部分,您将看到该database/文件夹由"classmap"()加载:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    }
},
Run Code Online (Sandbox Code Playgroud)

Composer 文档将类映射描述为:

在安装/更新期间,类映射引用全部组合成单个key => value数组,该数组可以在生成的文件vendor/composer/autoload_classmap.php中找到.通过扫描给定目录/文件中的所有.php和.inc文件中的类来构建此映射.

您可以使用类映射生成支持为所有不遵循PSR-0/4的库定义自动加载.要配置它,请指定要搜索类的所有目录或文件.

强调补充说.composer dumpautoload每次添加文件时都需要运行该命令来生成新的类图database/,否则它将不会自动加载.

app/相反,该文件夹使用PSR-4标准将完全限定的类名转换为文件系统路径.这就是您dumpautoload在那里添加文件后不需要的原因.


Sum*_*pta 23

当我们更改或删除控制器文件或其他文件时,应从代码中的任何地方删除它们的文件。您需要运行命令来刷新您的作曲家

composer dump-autoload
Run Code Online (Sandbox Code Playgroud)


Wou*_*mme 15

尝试改变

  $this->call('UserTableSeeder');
Run Code Online (Sandbox Code Playgroud)

  $this->call(UserTableSeeder::class);
Run Code Online (Sandbox Code Playgroud)

并尝试运行

 composer dump-autoload
Run Code Online (Sandbox Code Playgroud)


Ina*_*man 8

有时代码是正确的,但是您需要运行以下命令才能运行seeder命令。首先运行此命令

composer dumpautoload
Run Code Online (Sandbox Code Playgroud)

然后播种播种机

php artisan db:seed --class=CreateUsersTable
Run Code Online (Sandbox Code Playgroud)

我希望它能起作用