我正面临着一个挑战,而工作类型映射的查询构建通过DoctrineSQL查询生成器(从DBAL,而不是ORM)使用MySQL 8。
执行的查询从数据库返回以下三列:
但是,通过我当前的实现(例如简化),没有值映射到它们的PHP对应项。
$queryBuilder = $this->entityManager->getConnection()->createQueryBuilder();
$result = $queryBuilder
->select([
'st.user_id',
'st.starts_at',
'st.ends_at',
])
->from('some_table', 'st')
->execute()
->fetchAll();
fetchAll()方法返回的结果返回一个数组
当然,我可以通过迭代/映射从数据库中获取的结果来进行类型映射/强制转换,但我想知道在原则中是否有其他方法来实现这一点(可能通过为SQL查询生成器注册som类型的ResultsMapping或类似的方法)。如果这确实是可能的,那么惯用的方法是什么?
谢谢。
您是否映射了要获取的对象的数据/列?在symfony项目中使用原则时(我猜纯PHP项目也是如此,这里对此进行了解释),您指的是from()方法中的实体类,因此,例如,如果映射对象是Acme\Model\SomeObject
,则需要将对象名称空间和名称传递给from()方法-