我在数据库->工厂目录中有此PostFactory.php文件:
<?php
namespace Database\Factories;
use App\Models\Post;
use Illuminate\Database\Eloquent\Factories\Factory;
class PostFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Post::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'user_id' => User::factory(),
'title' => $this->faker->sentence,
'message' => $this->faker->paragraph
];
}
}
现在,当我运行此命令时
Post::factory()->create();
来自修补匠
我收到了该错误消息
未找到“数据库/工厂/用户”类
:(有什么我想念的吗?
答案 0 :(得分:2)
您需要导入用户模型。
对于Laravel 8,您的PostFactory.php
文件应如下所示;
<?php
namespace Database\Factories;
use App\Models\User;
use App\Models\Post;
use Illuminate\Database\Eloquent\Factories\Factory;
class PostFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Post::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'user_id' => User::factory(),
'title' => $this->faker->sentence,
'message' => $this->faker->paragraph
];
}
}
检查laravel docs on writing factories以获得更多信息。
关于prnt上的错误(在注释中列出),您将需要提供更多信息。
无论如何开始考虑考虑检查数据库:
如果是这种情况,请考虑将其删除,然后尝试再次创建工厂。当您尝试将必填列强加到没有该列的数据时,必填列将因此出错。
答案 1 :(得分:0)
因为我也有同样的问题。首先,我更改了与模型名称相同的工厂名称。就像我们有 Blog Model .. 我们将制作 BlogFactory 。所以它可以找到工厂的名称。