如何解决在 Laravel 中使用 faker 生成数据时如何设置两个变量以获得相同的值
我有一个生成事件的工厂
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
是数据库中的时间格式
解决方法
您可以通过先将伪造数据放入变量并通过调用其 DateTime
方法获取 getTimestamp()
对象的时间戳来重复使用伪造数据:
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'),];
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。