gpt4 book ai didi

doctrine-orm - 如何在 Native Query COLUMNS 上使用 Doctrine2 类型转换

转载 作者:行者123 更新时间:2023-12-05 01:24:48 25 4
gpt4 key购买 nike

在这方面找不到任何东西——似乎它应该是直截了当的。

因此,Doctrine2 文档给出的绑定(bind)参数类型转换的示例如下所示:

$date = new \DateTime("2011-03-05 14:00:21");
$stmt = $conn->prepare("SELECT * FROM articles WHERE publish_date > ?");
$stmt->bindValue(1, $date, "datetime");
$stmt->execute();

我想要做的是为其中一列指定类型转换,但在文档或 StackOverflow 上我找不到任何东西。这可能看起来像一个伪示例:

$stmt = $conn -> prepare("SELECT datetime FROM articles WHERE id = 1");
$stmt -> setType(0, "date_type"); // 0 being the column position, "date_type" being the PHP type to convert to

如果有人知道如何做到这一点(这是 SQL 而不是 DQL),我将不胜感激。谢谢你。

最佳答案

这不是在 DBAL 级别起作用的东西。如果您在 ORM 中使用 NativeSQL 查询,您可以使用 HYDRATE_ARRAY 通过水合(参见 NativeSQL section in the Doctrine ORM documentation)获得这种转换。模式并将某些获取的字段映射到实体。最快的解决方案(如果您不打算使用 ORM)是遍历结果并通过访问 Doctrine\DBAL\Types\Type::getType($someType)->convertToPhpValue($fetchedValue) 手动应用类型转换。 .能够指定第三个参数来说明 Doctrine\ORM\Query\ResultSetMapping#addScalarResult 中获取的类型,这可能是 ORM 的一个有值(value)的补充。 .

关于doctrine-orm - 如何在 Native Query COLUMNS 上使用 Doctrine2 类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11483888/

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