@artem_atlas

Как испровать ошибку миграции seeder?

Я пытаюсь выполнить php artisan migrate --seed или php artisan db:seed на что я получаю ошибку:
Class DatabaseSeeder does not exist

at C:\OSPanel\domains\vs.develop\vendor\laravel\framework\src\Illuminate\Container\Container.php:788

Я использую 1 файл seed:
<?php
namespace Database\Seeds;
use Illuminate\Support\Facades\DB;
use Illuminate\Database\Seeder;
use Illuminate\Database\Eloquent\Model;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
         DB::table('users')->insert([
            'name' => 'admin',
            'email' => 'admin@site.site',
            'password' => bcrypt('mypass'),
        ]);
...

мой composer.json:
"autoload": {
        "psr-4": {
            "App\\": "app/"
        },
        "classmap": [
            "database/seeds",
            "database/factories"
        ]
    },

вероятней всего проблема с "database/seeds", (если это так, то подскажите пожалуйста что с этим делать).
  • Вопрос задан
  • 326 просмотров
Решения вопроса 1
Lyrium
@Lyrium
Web developer
Во первых выполните composer dump-autoload раз в ошибке указано что класса нет.

А также в DatabaseSeeder лучше вызывать описанные сидеры, т.е. создавать в этой же директории классы например UsersTableSeeder.php и делать логику заполнения БД для этой таблицы в рамках этого класса, а затем в DatabaseSeeder в методе run вызывать класс для каждой таблицы.

/**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        $this->call(UsersTableSeeder::class);
    }
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы