所以我想知道,我想看看表是否已经被延迟/急切加载,而在我检查时没有实际加载它。例如:
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
因为如果尚未加载,它将去加载图像,但在这种情况,那不是我想做的。该示例是基本的,但我想做一些额外的过滤,所以我宁愿只进行自定义选择。我如何实际检查急切/延迟加载是否已完成?
最佳答案
您可以使用isRelationPopulated() ActiveRecord 类的方法。
关于php - Yii2 检查延迟加载是否已经完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31434798/