当我运行此命令时,我正在使用faker生成生成虚假条目并在 php artisan db:seed 的帮助下将其插入数据库 它显示错误:
播种:TodosTableSeeder
Symfony \ Component \ Debug \ Exception \ FatalThrowableError:Class 'APP \ Todo'未找到
在 /var/www/html/todos/vendor/laravel/framework/src/Illuminate/Database/Eloquent/FactoryBuilder.php: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-> amount))); 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);
}
}
答案 0 :(得分:2)
TodoTableSeeder.php
中的
将run
方法更改为
public function run()
{
factory(Todo::class, 10)->create();
}
答案 1 :(得分:0)
您尝试使用APP \ Todo获取Class并且APP \ Todo不存在,因为不正确,正确的表单是 \ APP \待办事项::类
但是如果你在标题中调用类,当你需要这个类时,你只需要像这样调用它:class All :: class
我希望这可以帮助你:)。
答案 2 :(得分:0)
use App\Todo;
use Illuminate\Database\Seeder;
class TodosTableSeeder extends Seeder
{
public function run()
{
//factory(APP\Todo::class, 10)->create() ;
factory(App\Todo::class, 10)->create() ;
//I changed the APP to App
}
}
答案 3 :(得分:0)
您需要为待办事项应用制作模型。
在这种情况下,编译器正在寻找App / Todo:意味着它正在寻找App文件夹中的todo.php ...
工匠品牌:待办事项模型
^首先运行此命令..然后,您将在App文件夹中看到Todo.php。 之后,运行您的原始命令。
php artisan db:Seed
希望它能起作用。在laravel 7.0中为我工作。