Yii2中一个模型的几个相同关系

Yii2中一个模型的几个相同关系,yii2,relationships,Yii2,Relationships,我有一个模型文件来存储上传的文件和关于这些文件的信息。此外,还有一个带有公司关系徽标hasOneFile::className和照片hasManyFile::className的模型。关系写得很好,工作也很好。现在我需要为模型公司制作一个编辑表单,在这个表单中我可以编辑与徽标和照片相关的文件。请告诉我怎么做。您的关系可以反映不同的用例,因此在您的公司模型中,您可以 public function getLogo(){ //You'll need to add in the other a

我有一个模型文件来存储上传的文件和关于这些文件的信息。此外,还有一个带有公司关系徽标hasOneFile::className和照片hasManyFile::className的模型。关系写得很好,工作也很好。现在我需要为模型公司制作一个编辑表单,在这个表单中我可以编辑与徽标和照片相关的文件。请告诉我怎么做。

您的关系可以反映不同的用例,因此在您的公司模型中,您可以

public function getLogo(){
    //You'll need to add in the other attributes that define how Yii is to retrieve the logo from your images
    return $this->hasOne(File::className(), ['companyId' => 'id', 'isLogo' => true]);
}

public function getPhotos(){
    //You'll need to add in the other attributes that define how Yii is to retrieve the photos from your images
    return $this->hasMany(File::className(), ['companyId' => 'id', 'isLogo' => false]);
}
然后,您可以像使用普通属性一样使用它们

$company = new Company;
$logo = $company->logo;
$photos = $company->photos;

然后,您需要设置控制器来处理这些值的更改,以处理上载或新图像,但这取决于您处理上载的方式。

此方法不适合我,因为此类关系可能不止两个。在这种情况下,它们将在$u POST中相互覆盖