Doctrine ArrayCollection->first() 返回布尔值



Hey使用具有属性GeoData 的Doctrine ORM

/**
* @var GeoData[]|Collection
*
* @ORMManyToMany(targetEntity="AcmeBundleCoreBundleEntityGeoData", inversedBy="addresses", cascade="persist", fetch="LAZY")
* @ORMJoinTable(name="users__addresses_geodata")
*/
protected $geoData;

并用一个特殊的吸气剂获取GeoData 的第一个元素

public function getMostLocalGeoDatum(): ?GeoData
{
if (null == $this->geoData && $this->geoData->isEmpty()){
return null;
}
/** @var GeoData $localeGeoDatum */
$localeGeoDatum = $this->geoData->first();
return $localeGeoDatum;
}

但每次我使用这个getter时,我都会得到一个错误:

TypeError: Return value of ACMEBundleCoreBundleEntityAddress::getMostLocalGeoDatum() must be an instance of ACMEBundleCoreBundleEntityGeoData or null, boolean returned

有什么线索吗?根据Doctrine ArrayCollection文档,first((应该返回ArrayColletion的第一个元素。

第一个if不应该是and,而应该是or条件。

相关内容

  • 没有找到相关文章

最新更新