所以我想知道,我想看看表是否已经被懒惰/急切加载,而在检查时却没有实际加载它。例如:
class Listing extends \yii\db\ActiveRecord {
public function getListingImages()
{
return $this->hasMany(ListingImage::className(), ['listing_id' => 'id'])->orderBy(['position' => SORT_ASC]);
}
public function getCoverImage()
{
if (isset($this->listingImages)) {
return $this->listingImages[0];
}
// Find cover image
}
}
因此,当我这样做时isset($this->listingImages)
,它将始终返回,true
因为如果尚未加载,它将去加载图像,但是在这种情况下,那不是我想要做的。该示例是基本示例,但是我想做一些额外的过滤,所以我宁愿只做一个自定义选择。我怎样才能真正查看急切/懒惰加载是否已完成?
您可以使用ActiveRecord类的isRelationPopulated()方法。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句