Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从faker获得唯一值?_Php_Laravel_Faker_Laravel 8_Laravel Factory - Fatal编程技术网

Php 如何从faker获得唯一值?

Php 如何从faker获得唯一值?,php,laravel,faker,laravel-8,laravel-factory,Php,Laravel,Faker,Laravel 8,Laravel Factory,我想问一下,如何从骗子那里创造独特的价值 我知道这是一个熟悉的问题实际上,你可能会把一些重复的链接,例如,但不幸的是,这些链接没有回答我的问题 下面是我的代码。我尝试了unique(true),但结果相同 return [ 'user_id' => $this->faker->unique()->numberBetween(1, 10), //more code here ]; 下面是我得到的结果。正如你所看到的,有很多重复的“5”插入 工厂才是真正的

我想问一下,如何从骗子那里创造独特的价值

我知道这是一个熟悉的问题实际上,你可能会把一些重复的链接,例如,但不幸的是,这些链接没有回答我的问题


下面是我的代码。我尝试了
unique(true)
,但结果相同

return [
    'user_id' => $this->faker->unique()->numberBetween(1, 10),
    //more code here
];
下面是我得到的结果。正如你所看到的,有很多重复的“5”插入

工厂才是真正的问题,而不是造假者。我是说工厂的电话

例如,假设您有
用户
用户信息
模型,因为您在上面的问题中没有提到任何模型


我假设你像下面这样调用工厂,在工厂中,它逐个创建一个模型,直到10,这使得
unique()
faker
无用

\App\Models\User_Information::factory()->create(10);
我的解决方案是使用循环使
唯一()
起作用

$max = 10;
for($c=1; $c<=$max; $c++) {
    \App\Models\User_Information::factory()->create();
}
$max=10;
对于($c=1;$ccreate();
}
注意:
$max
不能大于
User::count()
,否则它将返回
溢出异常
错误


在我的情况下,我有一个这样的设置

类域工厂扩展工厂{
受保护的$model=Domain::class;
公共功能定义(){
return['name'=>this->faker->unique()->domainWord()]
}
}
//播种机
对于($i=0;$i<10;$i++){
$domain=domain::factory()->create();
...
}
它没有为
name
生成唯一的值,因为我基本上创建了一个新工厂,并且在每次循环运行中都有一个新的伪造者。我必须将工厂从循环中拉出:

//播种机
$factory=Domain::factory();
对于($i=0;$i<10;$i++){
$domain=$factory->create();
...
}

这是否回答了您的问题?@KamleshPaul它没有返回唯一的值,与我上面的代码没有区别。