我有Article
类,它扩展了捆绑包类Article
class Article extends BaseArticle
BaseArticle
的方法为getImages
/**
* {@inheritdoc}
*/
public function getImages(): Collection
{
return $this->images;
}
问题是调用此方法时出现此错误:
Return value of Odiseo\BlogBundle\Model\Article::getImages() must implement interface Doctrine\Common\Collections\Collection, null returned
我不太确定如何获得null
,因为这仅发生在管理面板中,并且在公共文章页面中效果很好。扩展实体会出现问题吗?
答案 0 :(得分:0)
某处,一行
$this->images = new ArrayCollection();
丢失或被阻止(请注意,您需要为此使用{:use Doctrine\Common\Collections\ArrayCollection;
的使用子句)。
我在这里看到两种可能的原因:
BaseArticle
(因此,捆绑包中的Article
)在其__construct()
中没有前面提到的行。BaseArticle
具有该行,但是您的Article
的构造函数会覆盖(不调用父构造函数)并因此阻止了它,因此应调用父构造函数或自己拥有该行。 这两种原因均导致方法返回null
,因为该属性未正确初始化(正确的初始化将在最上面一行),这显然未实现Collection
接口,因此错误消息。
或者,将images
属性设置为null