当您从查询中获取行和列时,如果它是视图或表,那么这应该不是问题。
您需要使用 rsm 将结果映射到本机 SQL 查询的实体。
$rsm->addEntityResult('UserRecentActivity', 'u');
$rsm->addFieldResult('u', 'id', 'id');
$rsm->addFieldResult('u', 'user_id', 'user_id');
$rsm->addFieldResult('u', 'type', 'type');
$rsm->addFieldResult('u', 'created_at', 'created_at');
您还应该拥有适当的实体。
你可以检查http://www.doctrine-project.org/docs/orm/2.0/en/reference/native-sql.html http://www.doctrine-project.org/docs/orm/2.0/en/reference/native-sql.html获取更详细的示例。
UPDATE:
如果视图包含来自多个表的结果,则可以使用 addJoinedEntityResult() 方法将结果映射到各自的实体。您需要相应地定义实体并将结果映射到它们的字段。
此方法可能最终会得到部分对象,因此应谨慎使用以避免数据损坏。
有关部分对象的信息:http://www.doctrine-project.org/docs/orm/2.0/en/reference/partial-objects.html http://www.doctrine-project.org/docs/orm/2.0/en/reference/partial-objects.html