在 Laravel 中使用 faker 生成数据时如何设置两个变量以获得相同的值
How to set two variables to get the same value while generating data using faker in Laravel
我有一个用于生成事件的工厂
public function definition()
{
return [
'event_type' => $this->faker->randomElement(['class','event']),
'event_name' => $this->faker->sentence(1,2),
'date' => $this->faker->dateTimeBetween($startDate = '+1 days', $endDate = '+5 days'),
'start_time' => $this->faker->dateTimeBetween('+0 hours', '+2 hours'),
'end_time' => $this->faker->dateTimeBetween('+3 hours', '+10 hours'),
];
}
这里我需要 start_time
和 date
在 date
中生成相同的值
例如 date='2003-03-15 02:00:49'
。我希望 start_time
成为 02:00:49
但我得到了一些其他值,因为它是随机生成的。
注意:date
是时间戳,start_time
是数据库中的时间格式
您可以通过先将 faker 数据放入变量来重新使用 faker 数据,并通过调用其 getTimestamp()
方法获取 DateTime
对象的时间戳:
public function definition()
{
$date = $this->faker->dateTimeBetween($startDate = '+1 days', $endDate = '+5 days');
return [
'event_type' => $this->faker->randomElement(['class','event']),
'event_name' => $this->faker->sentence(1,2),
'date' => $date->getTimestamp(),
'start_time' => $date,
'end_time' => $this->faker->dateTimeBetween('+3 hours', '+10 hours'),
];
}
我有一个用于生成事件的工厂
public function definition()
{
return [
'event_type' => $this->faker->randomElement(['class','event']),
'event_name' => $this->faker->sentence(1,2),
'date' => $this->faker->dateTimeBetween($startDate = '+1 days', $endDate = '+5 days'),
'start_time' => $this->faker->dateTimeBetween('+0 hours', '+2 hours'),
'end_time' => $this->faker->dateTimeBetween('+3 hours', '+10 hours'),
];
}
这里我需要 start_time
和 date
在 date
例如 date='2003-03-15 02:00:49'
。我希望 start_time
成为 02:00:49
但我得到了一些其他值,因为它是随机生成的。
注意:date
是时间戳,start_time
是数据库中的时间格式
您可以通过先将 faker 数据放入变量来重新使用 faker 数据,并通过调用其 getTimestamp()
方法获取 DateTime
对象的时间戳:
public function definition()
{
$date = $this->faker->dateTimeBetween($startDate = '+1 days', $endDate = '+5 days');
return [
'event_type' => $this->faker->randomElement(['class','event']),
'event_name' => $this->faker->sentence(1,2),
'date' => $date->getTimestamp(),
'start_time' => $date,
'end_time' => $this->faker->dateTimeBetween('+3 hours', '+10 hours'),
];
}