我正在使用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 回答
您尝试使用APP \ Todo和APP \ Todo不存在,因为不正确,正确的形式是\ App \ Todo :: class
但是如果你在 Headers 中调用类,当你需要这个类时,你只需要像这样调用它:class All :: class
我希望这能帮助你:)
在
TodoTableSeeder.php
将
run
方法更改为