gpt4 book ai didi

php - 使用 Doctrine DQL 插入带有 DateTime 的 mysql 行

转载 作者:行者123 更新时间:2023-11-30 23:09:46 25 4
gpt4 key购买 nike

我在尝试使用 Doctrine DQL 在我的 MySQL 表中插入一行时遇到了一些问题,具体来说,该行插入正确但“创建”列在我的表上显示 0000-00-00 00:00:00。

这是我的实体:

    class Packages
{
[... more irrelevant fields ...]
/**
* @var \DateTime
* @ORM\Column(name="created", type="datetime", nullable=false)
*/
private $created;
}

这是我要插入的代码:

    $packages = new Packages;
$packages->setCreated(new \DateTime("now"));
[... more setters here ...]
print_r($packages); // See below for the print_r output
$em = self::getEntityManager();
try{
$em->persist($packages);
$em->flush();
return $packages->getPackageId();
}catch(\Exception $e){
$this->error = $e->getMessage();
return false;
}

这里输出print_r,然后正确返回了ID:

    Core\Entities\Packages Object
(
[..... More irrelevant fields set correctly .....]
[created:Core\Entities\Packages:private] => DateTime Object
(
[date] => 2013-12-02 09:37:18
[timezone_type] => 3
[timezone] => America/Los_Angeles
)
)

但是这件事发生了

    mysql> select created from packages where package_id=1694;
+---------------------+
| created |
+---------------------+
| 0000-00-00 00:00:00 |
+---------------------+
1 row in set (0.00 sec)

有人知道这件事吗?

最佳答案

尝试1) 在构造函数中创建集合或者2)使用Lifecycle Callbacks预坚持

关于php - 使用 Doctrine DQL 插入带有 DateTime 的 mysql 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20334529/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com