如何避免这种“错误”:
DataObject::get_one
的基本docblocks表示它返回一个DataObject
,这是正确的,但是在大多数情况下,它是扩展DataObject的类-例如在这种情况下为class HealthCheck extends DataObject
。
如果我写:
/** @var HealthCheck|null */
$a = DataObject::get_one(HealthCheck::class, ['Published' => true]);
return $a;
然后scrutiziner不会给我一个错误,但是我确实想要/不能这样写。
我们可以执行以下操作:
return HealthCheck::get()->filter(['Published' => true])->first();