У меня есть две модели, одна для загрузки файла на сервер, а другая для добавления записи в бд с именем данного файла:
Model Info:
class Info extends ActiveRecord
{
public static function tableName()
{
return '{{info}}';
}
public function rules() {
return [
[['title', 'preview', 'description_seo'], 'string', 'length' => [0, 255]],
[['title', 'preview', 'description_seo'], 'filter', 'filter' => 'strip_tags'],
[['title', 'preview', 'description_seo'], 'trim'],
[['title', 'preview', 'description_seo'], 'required'],
[['img_preview', 'img_full'], 'file', 'skipOnEmpty' => false, 'extensions' => 'jpg, jpeg'],
['description', 'safe'],
];
}
public function attributeLabels()
{
return [
'title' => 'Заголовок',
'preview' => 'Превью',
'description' => 'Описание новости',
'img_preview' => 'Фотография (Превью)',
'img_full' => 'Фотография (Основная)',
'description_seo' => 'Description (SEO)',
];
}
}
Model InfoUpload:
class InfoUpload extends Model
{
public $img_preview;
public $img_full;
public function upload() {
// Создание директории
$folderName = $this->generateUniqFileName("web/info");
FileHelper::createDirectory( Yii::getAlias("@frontend/web/img/info/$folderName") );
// Создание файла
$imgPreviewName = $folderName . '/' . $this->generateUniqFileName("web/info/$folderName") . '.' . $this->img_preview->extension;
$this->img_preview->saveAs( Yii::getAlias("@frontend/web/img/info/$imgPreviewName") );
// Создание Файла
$imgFullName = $folderName . '/' . $this->generateUniqFileName("web/info/$folderName") . '.' . $this->img_full->extension;
$this->img_full->saveAs( Yii::getAlias("@frontend/web/img/info/$imgFullName") );
}
public function generateUniqFileName($path) {
$name = bin2hex(random_bytes(8));
if ( file_exists( Yii::getAlias("@frontend/$path/$name") ) ) return $this->generateUniqFileName();
else return $name;
}
}
Я не понимаю как можно передать из модели Info ['img_preview', 'img_full'] в модель InfoUpload, и после получить название файлов и записать их обратно в модель Info ['img_preview', 'img_full']
Уже не первый день пытаюсь((