是什么原因导致此Laravel 8应用程序中的出厂格式未知错误?

2022-08-07 00:00:00 php laravel laravel-8

我正在开发一款具有用户和帖子的Laravel 8应用程序。

目标是创建一组帖子(我已经有用户)。

namespace DatabaseFactories;
// import Post model
use AppModelsPost;
// import User model
use AppModelsUser;
use IlluminateDatabaseEloquentFactoriesFactory;

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 [
            'title' => $this->faker->sentence(3),
            'description' => $this->faker->text,
            'content' => $this->faker->paragraph,
            'user_id' => $this->faker->factory(AppModelsUser::class),
        ];
    }
}

问题

我在终端运行php artisan tinker然后Post::factory()->count(100)->create(),得到:

InvalidArgumentException with message 'Unknown format "factory"'

更新

我将我的返回语句替换为:

 return [
    'title' => $this->faker->sentence(3),
    'description' => $this->faker->text,
    'content' => $this->faker->paragraph,
    'user_id' => User::factory(),
];

我在终端上看到了这个:

Class 'DatabaseFactoriesUserFactory' not found

问题:

  1. 我的错误在哪里?
  2. 我收到错误这一事实是否意味着我需要 是否创建UserFactory工厂?因为根本就没有。)我想 创建帖子,而不是用户)。

解决方案

我认为没有$this->faker->factory(..)

您可以

'user_id' => AppModelsUser::factory()->create()->id,

编辑: 'user_id' => AppModelsUser::factory(),

相关文章