当我通过 DatabaseSeeder 调用它时找不到 Laravel Seeder 类

我做了在基础文件名为数据库迁移class GridWithRoverSeeder在./database/seeds/GridWithRoverSeeder.php:


use Illuminate\Database\Seeder;

use Illuminate\Support\Facades\DB;


class GridWithRoverSeeder extends Seeder

{

    /**

     * Run the database seeds.

     *

     * @return void

     */

    public function run()

    {

        DB::table('grid')->insert([

            'id' => 1,

            'width' => 10,

            'height' => 10,

        ]);


        DB::table('rover')->insert([

            'id' => 1,

            'rover_id' => 1,

            'command' => "RRMRMMRM",

            'last_command'=>""

        ]);

    }

}

我从DatabaseSeeder以下位置调用它:


use Illuminate\Database\Seeder;


class DatabaseSeeder extends Seeder

{

    /**

     * Seed the application's database.

     *

     * @return void

     */

    public function run()

    {

        $this->call([

            GridWithRoverSeeder::class

        ]);

    }

}

但是当我运行时php artisan db:seed出现以下错误:


   ReflectionException  : Class GridWithRoverSeeder does not exist

你知道为什么吗?


holdtom
浏览 247回答 2
2回答

收到一只叮咚

我能够重现您的问题,这有助于解决它。删除您的播种机文件并重新生成它。php artisan make:seed GridWithRoverSeeder跑composer dump-autoload在 DatabaseSeeder 中调用播种机$this->call([        GridWithRoverSeeder::class    ]);注意: 避免手动重命名文件。

慕码人8056858

确保composer dump-autoload在 laravel 中创建播种机或任何新类后运行。
打开App,查看更多内容
随时随地看视频慕课网APP