Yii2. "With" 在多对多



我有3个模型:图像,公司和文件。如果我们查看Company模型,我们有:

/**
* @return yiidbActiveQuery
*/
public function getImages()
{
    return $this->hasMany('galleriesmodelsImage', ['id' => 'image_id'])
        ->viaTable('{{%companies_has_images}}', ['company_id' => 'id']);
}
public function extraFields()
{
    return ['images'];
}

现在是一个图像模型:

    /**
* @return yiidbActiveQuery
*/
public function getFile()
{
    return $this->hasOne('appmodelsFile', ['id' => 'file_id']);
}
public function extraFields()
{
    return ['file'];
}

所以这里的问题是,我如何在公司模型中获得getImages()中具有正确文件的图像?

您必须首先获取图像,然后提供一个额外的getter函数来返回文件:

public function getImageFiles() 
{
    $files = [];
    foreach ($this->images as $image)
       $files[] = $image->file;
    return $files;
}

相关内容

  • 没有找到相关文章

最新更新