是否有可能将学说的本机查询映射到未注释为 ORM 实体的类?
我在 App\Model
class BasicModel
{
private int $weight;
private int $points;
}
我的目标是将查询结果直接映射到这个非实体类中。
$rsm = new ResultSetMapping();
$rsm->addEntityResult(BasicModel::class, 'b');
$rsm->addFieldResult('b', 'points', 'points');
$rsm->addFieldResult('b', 'weight', 'weight');
$query = $this->em->createNativeQuery('select points, weight from some_table', $rsm);
$result = $query->getResult();
当前发生错误
<块引用>在链配置的命名空间 App\Entity 中找不到类“App\Model\BasicModel”
我不想将此类注释为实体,因为我不需要将此信息存储在数据库中。
我当前的堆栈:
答案 0 :(得分:0)
不幸的是,这是不可能的。 Doctrine 是作为数据库抽象层 (DBAL) 构建的,不允许用于此用例。
我看到了两条前进的道路。我知道您说您不希望那样,但是由于您的堆栈中有 MySQL,您可以选择将数据添加到数据库中,并将实体作为适当的实体类。另一种选择是不使用 Doctrine 并构建不同的实现来列出所有实体。