【问题标题】:Symfony - Return type for Doctrine entitySymfony - Doctrine 实体的返回类型
【发布时间】:2018-06-03 20:24:08
【问题描述】:

从 php7 开始,我们已经知道可以声明函数的返回类型。然后,如果该函数返回其他内容,则会引发异常。

现在我想在我的 Symfony 项目中的一个函数返回一个 Doctrine 实体时使用这个新功能。所以我尝试声明一个这样的函数:

public function getEntity(array $conditions, string $entityClass): ?object
{
    // some logic...
    return $queryBuilder->setMaxResults(1)->getQuery()->getOneOrNullResult();
}

如您所见,它必须返回 nullobject 变量。但是,object 似乎没有按预期工作,因为我遇到了异常:

类型错误:返回值 HelperBundle\MyHelper::getEntity() 必须是 HelperBundle\object 的实例或 null,AppBundle\Entity\MyEntity 实例返回

我实际上不确定这条消息的含义:返回的对象应该派生自位于HelperBundle 的类还是什么?

但一般来说,有没有一种方法可以在不使用自定义基类或接口的情况下为通用 Doctrine 实体声明返回类型?

【问题讨论】:

  • 投反对票到底是什么?

标签: php symfony doctrine


【解决方案1】:

我刚刚阅读了一篇关于此的文章,不支持将返回类型提示作为对象

但是,您可以在 PHP 7.2 中: http://php.net/manual/en/migration72.new-features.php

【讨论】:

【解决方案2】:

为了回答你的第一个问题,我只想说这个声明

public function getEntity(array $conditions, string $entityClass): ?object

被 PHP HelperBundle 命名空间中声明了 object 类。

【讨论】:

  • 我依赖于 PhpStorm,因为它没有给出任何错误,所以我认为它已经可以从 php 7.1... 我的错:\
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-05-14
  • 1970-01-01
相关资源
最近更新 更多