【问题标题】:Target class [Database\Seeders\UsersTableSeeder] does not exist目标类 [D​​atabase\Seeders\UsersTableSeeder] 不存在
【发布时间】:2021-04-20 19:06:49
【问题描述】:

我收到错误“目标类 [D​​atabase\Seeders\UsersTableSeeder] 不存在”,我不知道为什么。我已经尝试过针对类似问题发布的解决方案,但没有一个对我有用。

这是我的 composer.json 自动加载/类映射设置

"autoload": {
    "psr-4": {
        "App\\": "app/"
    },
    "classmap": [
        "database/seeders",
        "database/factories"
    ]
},

UsersTableSeeder 类

<?php

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

class UsersTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run()
    {
        DB::table('users')->insert([
            'fname' => 'Billy',
            'lname'=> 'Bob',
            'email' => 'billy@gmail.com',
            'password' => Hash::make('12345678'),
        ]);
    }
}

DatabaseSeeder 类


<?php

namespace Database\Seeders;

use Illuminate\Database\Seeder;

class DatabaseSeeder extends Seeder
{
    /**
     * Seed the application's database.
     *
     * @return void
     */
    public function run()
    {
        // \App\Models\User::factory(10)->create();
        $this->call(UsersTableSeeder::class);
    }
}

【问题讨论】:

    标签: php laravel laravel-seeding


    【解决方案1】:

    UsersTableSeeder 类中缺少命名空间。

    <?php
    
    namespace Database\Seeders;
    ...
    
    

    这将使自动加载器找到另一个播种器,因为它们将与DatabaseSeeder 具有相同的命名空间。

    注意:在那之后运行composer dump-autoload

    【讨论】:

    • 我添加了命名空间并运行了 composer dump-autoload。它解决了这个问题,谢谢。
    猜你喜欢
    • 2021-08-30
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 1970-01-01
    • 2020-10-29
    • 2023-04-02
    • 2021-01-12
    • 1970-01-01
    相关资源
    最近更新 更多