Doctrine - 映射到非实体类

时间:2021-04-07 10:10:09

标签: php doctrine-orm doctrine

是否有可能将学说的本机查询映射到未注释为 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”

我不想将此类注释为实体,因为我不需要将此信息存储在数据库中。

我当前的堆栈:

  • Symfony 5
  • MySQL 8
  • 原则 2

1 个答案:

答案 0 :(得分:0)

不幸的是,这是不可能的。 Doctrine 是作为数据库抽象层 (DBAL) 构建的,不允许用于此用例。

我看到了两条前进的道路。我知道您说您不希望那样,但是由于您的堆栈中有 MySQL,您可以选择将数据添加到数据库中,并将实体作为适当的实体类。另一种选择是不使用 Doctrine 并构建不同的实现来列出所有实体。

相关问题