Yii2检查延迟加载是否已经完成

SynackSA

所以我想知道,我想看看表是否已经被懒惰/急切加载,而在检查时却没有实际加载它。例如:

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章