我似乎无法以我的数据库播种机将接受的格式获取时间戳。
我在php artisan tinker
中运行此命令:
$faker->dateTimeThisYear($max = '+1 year')->format('Y-m-d H:i:s')
产生:
"2015-03-17 01:26:44"
据我所知,这与数据库期望的格式(0000-00-00 00:00:00
)相匹配。但是,当我尝试播种数据库时,我得到以下错误:
[InvalidArgumentException]
The separation symbol could not be found
Unexpected data found.
Hour can not be higher than 12
Unexpected data found.
A meridian could not be found
我尝试过的所有其他变体包括传递一个实际的DateTime对象也没有用。甚至不是这种格式:'YYYY-MM-DD HH:mm:ss'
这不起作用:
DateTime::createFromFormat('Y-m-d H:i:s', '2000-05-05 22:22:22')
错误:
DateTime::createFromFormat() expects parameter 2 to be string, object given
最令人不安的是,在该列的迁移中,我可以指定Carbon::now()
作为默认值,它可以正常工作。只有在播种时才会出现这些错误。它甚至不允许我在播种时使用Carbon::now()
。
迁移:
$table->timestamp('time_available')->default(Carbon::now());
接种:
$factory->define(App\AvailableMeeting::class, function (Faker\Generator $faker) {
return [
'office_id' => 1,
'worker_id' => 1,
'length_minutes' => $faker->numberBetween(14,61),
'time_available' => $faker->dateTimeThisYear('+1 year')->format('Y-m-d H:i:s') // doesn't work.. neither does Carbon::now()
];
});
数据库:
您的意见表示赞赏!