首页 文章

Laravel 5.6 db:种子抛出FatalThrowableError:找不到类'APP\Todo'

提问于
浏览
1

我正在使用faker生成生成虚假条目并在 php artisan db:seed 的帮助下将其插入数据库中,当我运行此命令时,它显示错误:

播种:TodosTableSeeder Symfony \ Component \ Debug \ Exception \ FatalThrowableError:在/var/www/html/todos/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php中找不到类'APP \ Todo': 217 213 | if($ this-> amount <1){214 | return(new $ this-> class) - > newCollection(); 215 | } 216 | 217 | $ instances =(new $ this-> class) - > newCollection(array_map(function()use($ attributes){218 | return $ this-> makeInstance($ attributes); 219 |},range(1,$ this-) >量))); 220 | 221 | $这 - > callAfterMaking($实例);异常跟踪:1 Illuminate \ Database \ Eloquent \ FactoryBuilder :: make([])/var/www/html/todos/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:167 2 Illuminate \ Database \ Eloquent \ FactoryBuilder :: create()/var/www/html/todos/database/seeds/TodosTableSeeder.php:15请使用参数-v查看更多详细信息 .

这是我的代码 UserFactory.php

<?php

use Faker\Generator as Faker;

$factory->define(App\User::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'password' => '$2y$10$TKh8H1.PfQx37YgCzwiKb.KjNyWgaHb9cbcoQgdIVFlYg7B77UdFm', // secret
        'remember_token' => str_random(10),
    ];
});

$factory->define(App\Todo::class, function(Faker $faker) {
    return[
        'todos' => $faker->sentence(10)
        ];

});

TodosTableSeeder.php

<?php
use App\Todo;
use Illuminate\Database\Seeder;


class TodosTableSeeder extends Seeder
{

    public function run()
    {
        factory(APP\Todo::class, 10)->create() ;
    }
}

DatabaseSeeder.php

<?php
use App\Todo;
use Illuminate\Database\Seeder;


class DatabaseSeeder extends Seeder
{

    public function run()
    {
        //$this->call(UsersTableSeeder::class);
            $this->call(TodosTableSeeder::class);
    }
}

2 回答

  • 0

    您尝试使用APP \ Todo和APP \ Todo不存在,因为不正确,正确的形式是\ App \ Todo :: class

    但是如果你在 Headers 中调用类,当你需要这个类时,你只需要像这样调用它:class All :: class

    我希望这能帮助你:)

  • 1

    TodoTableSeeder.php

    run 方法更改为

    public function run()
    {
        factory(Todo::class, 10)->create();
    }
    

相关问题