【问题标题】:How to seed using faker in laravel如何在 laravel 中使用 faker 播种
【发布时间】:2023-03-03 22:50:01
【问题描述】:

我的用户模型具有字段名称、密码、电子邮件等。 用户工厂

$factory->define(User::class, function (Faker $faker) {
    return [
        'name' => $faker->name,
        'email' => $faker->unique()->safeEmail,
        'email_verified_at' => now(),
        'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
        'remember_token' => Str::random(10),
    ];
});

数据库播种器

public function run()
    {
        // $this->call(UsersTableSeeder::class);
        $this->call(UserSeeder::class);
    }

UserSeeder

public function run()
    {
        factory(App\User::class, 2000000)->create();
    }

现在我有一个朋友模型,想在其中播种记录。 列是 sender_id、receiver_id、status(0=pending,1=confirm)。 sender_id 和 receiver_id 结合起来应该是唯一的。 sender_id 是 user_id,receiver_id 也是 user_id 两个 id 都来自 users 表。

谁能建议我如何将数据播种到朋友表中?

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    朋友工厂

    /* @var $factory \Illuminate\Database\Eloquent\Factory */
    
    use App\User;
    use App\Friend;
    
    $factory->define(Friend::class, function () {
    
        $senderId  = factory(User::class)->create()->id;
        $receiverId  = factory(User::class)->create()->id;
    
        return [
            'status' => rand(0,1),
            'sender_id' => $senderId,
            'receiver_id' => $receiverId,
        ];
    });
    

    朋友种子

    public function run()
    {
        factory(App\Friend::class, 2000000)->create();
    }
    

    【讨论】:

    • 以上播种器工作正常,但无法从此代码为特定用户创建多个朋友。
    猜你喜欢
    • 1970-01-01
    • 2018-09-03
    • 2018-09-10
    • 2019-01-17
    • 2017-08-29
    • 2018-08-01
    • 2019-05-18
    • 2022-07-21
    • 2015-06-02
    相关资源
    最近更新 更多