У меня есть 3 модели: изображение, компания и файл. Итак, если мы посмотрим на модель компании, мы имеем:
/**
* @return \yii\db\ActiveQuery
*/
public function getImages()
{
return $this->hasMany('galleries\models\Image', ['id' => 'image_id'])
->viaTable('{{%companies_has_images}}', ['company_id' => 'id']);
}
public function extraFields()
{
return ['images'];
}
Теперь модель изображения:
/**
* @return \yii\db\ActiveQuery
*/
public function getFile()
{
return $this->hasOne('app\models\File', ['id' => 'file_id']);
}
public function extraFields()
{
return ['file'];
}
Итак, вот вопрос, как я могу получить изображения с правильными файлами в getImages () в модели компании?
Сначала вам нужно будет получить изображения, а затем предоставить дополнительную функцию получения для возврата файлов:
public function getImageFiles()
{
$files = [];
foreach ($this->images as $image)
$files[] = $image->file;
return $files;
}
Других решений пока нет …