laravel的modelFactory 生成假数据时,如何保证不重复

问题描述

laravel的modelFactory 生成假数据时,如何保证不重复?

问题出现的环境背景及自己尝试过哪些方法

通过unique过滤,但是没起作用,谷歌了相关问题,没有发现合适的

相关代码

use Faker\Generator as Faker;

$factory->define(App\Models\Tab::class, function (Faker $faker) {

    return [
        'name' => $faker->unique()->randomElement(['我的', '搜索', '推荐', '电影', '电视剧', '综艺', '小品', '动漫', '动画屋', '应用', '其他']),
        'name_cover' => 'http://imgbftv.b0.upaiyun.com/1342/20180515151342_1_45727.jpeg',
        'name_cover_focus' => 'http://imgbftv.b0.upaiyun.com/1342/20180515151342_1_45727.jpeg',
        'bg_cover' => 'http://imgbftv.b0.upaiyun.com/1342/20180515151342_1_45727.jpeg',
        'operate_type' => $faker->randomElement([0, 1, 2]),
        'status' => $faker->randomElement([0, 1, 2]),
        'operator' => $faker->username,
        'sort' => $faker->unique()->randomDigit,
    ];
});

public function run()
{
    // create tabs and save them to the database
    $tabs = factory(App\Models\Tab::class,8)->create();
}
    

你期待的结果是什么?实际看到的错误信息又是什么?

期待生成的某些字段数据是不重复的,但目前的结果是有重复数据的

翻翻过去那场雪
浏览 700回答 2
2回答

翻阅古今

......我觉得应该是插件有什么bug,真是无语,我把create换成make,之后又换回来,就自己无缘无故的又好了
打开App,查看更多内容
随时随地看视频慕课网APP