You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Laravel中如何配置fake-car扩展在CarFactory生成汽车伪数据

Laravel pelmered/fake-car 工厂配置完整方案

1、先安装依赖扩展包

开发环境下执行composer命令:
composer require pelmered/fake-car --dev

2、CarFactory.php 配置方案

Provider注册代码直接写在工厂的definition()方法开头即可,无需放到Car模型中,完整工厂代码参考:

<?php

namespace Database\Factories;

use Illuminate\Database\Eloquent\Factories\Factory;

class CarFactory extends Factory
{
    protected $model = \App\Models\Car::class;

    public function definition()
    {
        // 这里注册fake-car provider
        $this->faker->addProvider(new \Faker\Provider\Fakecar($this->faker));
        $v = $this->faker->vehicleArray();

        return [
            // 你可以根据自己的表字段调整以下返回值,合并原有需求即可
            'name' => $v['brand'] . ' ' . $v['model'],
            'founded' => $this->faker->biasedNumberBetween(1998,2017, 'sqrt'),
            'description' => $this->faker->paragraph(),
            'vehicle_type'      => 'car',
            'vin'               => $this->faker->vin,
            'registration_no'   => $this->faker->vehicleRegistration,
            'type'              => $this->faker->vehicleType,
            'fuel'              => $this->faker->vehicleFuelType,
            'brand'             => $v['brand'],
            'model'             => $v['model'],
            'year'              => $this->faker->biasedNumberBetween(1998,2017, 'sqrt'),
        ];
    }
}

如果需要全局注册Provider,避免每个工厂都重复写注册代码,可以在app/Providers/AppServiceProvider.php的register()方法中添加以下配置:

public function register()
{
    $this->app->extend(\Faker\Generator::class, function ($faker) {
        $faker->addProvider(new \Faker\Provider\Fakecar($faker));
        return $faker;
    });
}

全局注册后,所有工厂都可以直接调用fake-car提供的faker方法,无需再单独注册Provider。

3、Tinker 生成测试数据

执行以下命令进入Tinker:
php artisan tinker
执行生成数据命令,按需调整生成数量:
\App\Models\Car::factory()->count(20)->create()

内容的提问来源于stack exchange,提问作者Ginz77

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 13:57:03