fapchat
@fapchat

Как исправить ошибку «Target class [UserSeeder] does not exist»?

Вот код DatabaseSeeder.php:
<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

use UserSeeder;
use PostSeeder;

class DatabaseSeeder extends Seeder
{
    public function run()
    {
        $this->call([
            UserSeeder::class,
            PostSeeder::class,
        ]);
    }
}

Вот UsersSeeder.php:
<?php
namespace Database\Seeders;

use Illuminate\Database\Seeder;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Str;

class UserSeeder extends Seeder
{
    public function run()
    {
        // for ($i = 0; $i < 10; $i++) {
        DB::table('users')->insert([
            'first_name' => Str::random(10),
            'second_name' => Str::random(10),
            'email' => Str::random(10) . '@gmail.com',
            'password' => Hash::make(Str::random(12)),
        ]);
        // }
    }
}

Laravel у меня 9-ый. В обновлён он нормально. Вот composer.json:
{
    "name": "laravel/laravel",
    "type": "project",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "require": {
        "php": "^8.0.2",
        "doctrine/dbal": "^3.3",
        "guzzlehttp/guzzle": "^7.2",
        "laravel/framework": "^9.2",
        "laravel/sanctum": "^2.14.1",
        "laravel/tinker": "^2.7"
    },
    "require-dev": {
        "fakerphp/faker": "^1.9.1",
        "laravel/sail": "^1.0.1",
        "mockery/mockery": "^1.4.4",
        "nunomaduro/collision": "^6.1",
        "phpunit/phpunit": "^9.5.10",
        "spatie/laravel-ignition": "^1.0"
    },
    "autoload": {
        "psr-4": {
            "App\\": "app/",
            "Database\\Factories\\": "database/factories/",
            "Database\\Seeders\\": "database/seeders/"
        }
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },
    "scripts": {
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover --ansi"
        ],
        "post-update-cmd": [
            "@php artisan vendor:publish --tag=laravel-assets --ansi --force"
        ],
        "post-root-package-install": [
            "@php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate --ansi"
        ]
    },
    "extra": {
        "laravel": {
            "dont-discover": []
        }
    },
    "config": {
        "optimize-autoloader": true,
        "preferred-install": "dist",
        "sort-packages": true
    },
    "minimum-stability": "dev",
    "prefer-stable": true
}

В интернете есть совет насчёт команды composer dump-autoload. Так вот: она мне не помогла.
Если написать php artisan migrate:fresh --seed, то произойдёт упомянутая в заголовке этого вопроса ошибка!
  • Вопрос задан
  • 384 просмотра
Решения вопроса 1
@lil_koi
лучший из худших
Замени
use UserSeeder;
на
use Database\Seeders\UsersSeeder;
+ у тебя файл называется UsersSeeder.php , а имя класса UserSeeder
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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