【发布时间】:2018-09-20 04:18:31
【问题描述】:
当我运行此命令时,我正在使用 faker generate 生成虚假条目并将其插入数据库中,并借助 php artisan db:seed 它显示一个错误:
播种:TodosTableSeeder
Symfony\Component\Debug\Exception\FatalThrowableError : 类 'APP\Todo' 未找到
在 /var/www/html/todos/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php:217 213| if ($this->amount class)->newCollection(); 215| } 216|
217| $instances = (new $this->class)->newCollection(array_map(function () use ($attributes) { 218|返回 $this->makeInstance($attributes); 219| }, range(1, $this->amount))); 220| 221| $this->callAfterMaking($instances);
异常跟踪:
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);
}
}
【问题讨论】:
-
改用
factory(App\Todo::class, 10)->create() ;。大小写很重要。 -
我在 TodosTableSeeder 中使用过它。您所说的大写重要是什么意思?
-
含义
APP与App不同
标签: php database laravel factory laravel-seeding