symfony 4 fixtures datetime方法不使用PDO数据中的字符串始终设置;现在";
我尝试使用Symfony将一些数据从WordPress迁移到我的Symfony应用程序 除了从wordpress mysql数据库的“post_date”列迁移日期之外,一切都正常 例如,我的mysql变量如下所示:$post_value['post_date']='2018-03-30 21:05:24'; 并且是用PDO拍摄的。这个字符串是真实的,我只是复制/粘贴在这里;) 然后我在DataFixtures中有这样的东西:symfony 4 fixtures datetime方法不使用PDO数据中的字符串始终设置;现在";,symfony,datetime,pdo,fixtures,Symfony,Datetime,Pdo,Fixtures,我尝试使用Symfony将一些数据从WordPress迁移到我的Symfony应用程序 除了从wordpress mysql数据库的“post_date”列迁移日期之外,一切都正常 例如,我的mysql变量如下所示:$post_value['post_date']='2018-03-30 21:05:24'; 并且是用PDO拍摄的。这个字符串是真实的,我只是复制/粘贴在这里;) 然后我在DataFixtures中有这样的东西: $item = new Articles(); $item->
$item = new Articles();
$item->setDateCreated(new \DateTime($post_value['post_date']));
...
$this->manager->persist($item);
...
$this->manager->flush();
在数据库中,它不放置迁移的值,而是一个与使用\datetime(“now”)类似的当前日期时间
我从mysql得到的结果是(new/other database.table.column):
编辑:
//hard print_r for fisrt row
echo "\n ---- \n >>>";
print_r($post_value['post_date']);
echo "<<< \n ---- \n ";
die();
//result with this
----
>>>2010-05-25 23:05:20<<<
----
来自sql的这两个结果与迁移所有数据的结果不同,上面的示例只涉及一个条目
EDIT2:
//hard print_r for fisrt row
echo "\n ---- \n >>>";
print_r($post_value['post_date']);
echo "<<< \n ---- \n ";
die();
//result with this
----
>>>2010-05-25 23:05:20<<<
----
//第一行的硬打印\r
回显“\n----\n>>>”;
打印($post_值['post_日期]);
echo“我认为问题不在于此代码,而在于实体
两种可能性:
保存实体时,将覆盖日期时间值
该列配置为自动添加“NOW()”函数,而不是变量的值
然后,为了确切地知道发生了什么,你可以使用以下一些线索:
检查您的实体是否使用条令生命周期。如果是,请检查@Prepersist方法期间是否覆盖此datetime值
该列只能由以下人员注释:@column(type=“datetime”)
检查您的实体中是否未使用任何可标记时间的捆绑包/特征
如果将语句dd($post\u value['post\u date']);
添加到刚开始的语句$item->setDateCreated
?该行为表明$post\u value['post\u date']
为空。echo“\n----\n>>”print\r($post\u value['post\u date']);echo”感谢您的响应,我使用了prePersist方法(EventListener)setter$entity->setDateCreated(new\DateTime(“now”)。解决方案正在检查交付的日期值是否为DateTime类的instanceof,如果不是仅使用带有“now”的DateTime