Doctrine php7 +类型提示,代理声明错误

时间:2017-08-17 13:12:23

标签: symfony doctrine-orm php-7 php-7.1

我经常遇到这个奇怪的错误

  Warning: Declaration of Proxies\__CG__\AppBundle\Entity\MyEntity::setName(string $name): 
  AppBundle\Entity\MyEntity should be compatible with AppBundle\Entity\MyEntity::setName(?string $name): 
  AppBundle\Entity\MyEntity

为什么发生这种情况?为什么我没有

public function setName(?string $name): self
{
    $this->name = $name;

    return $this;
}

作为我的二传手?如果我删除'?',但我确实需要它用于其他目的

1 个答案:

答案 0 :(得分:5)

正如我在评论中已提到的:根据this issue旧版本的doctrine / common(特别是2.7.1之前的版本),如果使用可选参数类型提示,则可能在创建匹配代理类时遇到问题。 / p>

更新doctrine / common似乎解决了这个问题。