当前位置: 首页 > 知识库问答 >
问题:

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

丌官嘉福
2023-03-14

迁移数据库后,我正在尝试一个基本的php artisan db:seed,但它在cmd-[ReflectionException]类“UserTableSeeder”中不断返回标题错误

我尝试过的事情

  • 更改“UserTableSeeder”的命名空间。php“文件”命名空间数据库\seeds;'和“使用数据库\种子\用户表种子;”在“数据库播种器”中。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');
    }
}

下面是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']);
    }
}

以下是数据库eeder.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');
    }
}

共有3个答案

帅德惠
2023-03-14

试着改变

  $this->call('UserTableSeeder');

  $this->call(UserTableSeeder::class);

试着跑步

 composer dump-autoload
昌勇锐
2023-03-14

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

composer dumpautoload

然后给播种机播种

php artisan db:seed --class=CreateUsersTable

我希望它能起作用

常睿范
2023-03-14

在数据库/文件夹中创建文件后运行作曲家Dumpautoload

为什么啊?

检查composer.json自动加载部分,你会看到数据库/文件夹是由类映射(源)加载的:

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

Composer文档将classmap描述为:

在安装/更新过程中,类映射引用都合并到一个键中=

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

重点补充。每次向数据库/添加文件时,都需要运行composer dumpautoload命令来生成新的类映射,否则它将不会自动加载。

相比之下,app/文件夹使用PSR-4标准将完全限定的类名转换为文件系统路径。这就是为什么在添加文件后不需要dumpautoload

 类似资料:
  • 我想用下面的元素迁移一个表。 然而,我一直在处理下面的错误。有人知道如何使整数“loginid不是一个主键,以便我可以迁移下表吗?任何建议都很感激。提前谢谢。 [Illuminate\database\queryException] SQLSTATE[HY000]:一般错误:1表“users”有多个主键(SQL:create table“users”(“id”integer not null主键自

  • 运行php artisan db:seed时,出现以下错误: 到底是怎么回事? 我的数据库Seeder类: 我的Song sTableSeeder类:

  • 我有一个错误与我的Laravel 5.2应用程序,其中类方法的调用导致Laravel无法找到类。 我运行一个LAMP堆栈。 我尝试了各种建议,许多人偶然发现命名空间是解决方案。我是新来的Laravel,所以可能有一些元素设置,我做的不正确。我主要研究了文件夹所有权和权限。 在调用库提供的其他控制器时,我也遇到过这个问题。然而,我不确定描述这个问题是否会混淆真正的问题。 反射异常在Route.php

  • 问题内容: 我马上输入命令。 我收到 错误提示 : [ReflectionException] 类UserTableSeeder不存在 在这里,是我&页面 UserTableSeeder.php DatabaseSeeder.php 我将这个链接引至“设计与开发”登录页面。请帮助我解决此问题。谢谢。 问题答案: 执行一个,然后。 如果以上操作不解决问题 ,改变 你的 文件,使之包含项目相关的路径到

  • 尽快,我输入命令。 我得到错误像: [ReflectionException] 类UserTableSeeder不存在 这里是我的 用户表种子。php 数据库eeder.php 我把这个链接和设计联系起来

  • 我直接从4.2升级到5.1,遇到了Html和Form类的问题。 我按照升级说明做了 在composer.json中添加“laravelcollective/html”:“~5.0” 但我的观点行不通。我在使用HTML::router时获取,或者在使用链接到路由时获取 我还尝试了而不是,我做了一个