提问人:Abdelilah Dahdahi 提问时间:11/3/2023 最后编辑:Abdelilah Dahdahi 更新时间:11/3/2023 访问量:35
将上传的文件复制到新的Yii2模型时出现问题
Problem Copying Uploaded Files to a New Yii2 Model
问:
我正在开发一个 Yii2 应用程序,在尝试复制模型及其上传文件时遇到了一个问题。我正在使用 Yii2 的 UploadedFile 进行文件上传。挑战在于上传的文件 (imageFiles) 未成功复制到新模型。这是我的代码:
public function actionDuplicate($id)
{
$existingModel = $this->findModel($id);
$model = new Task();
// Copy attributes from the existing model
$model->attributes = $existingModel->attributes;
// Manually copy the imageFiles property if it exists
if (isset($existingModel->imageFiles) && is_array($existingModel->imageFiles)) {
$model->imageFiles = [];
foreach ($existingModel->imageFiles as $file) {
$model->imageFiles[] = $file;
}
}
// Reset primary key
$model->id = null;
if ($model->load(Yii::$app->request->post()) && $model->save()) {
// renders view
} else {
// Render the create form with the new model
return $this->render('create', [
'model' => $model,
]);
}
}
代码正确复制了大多数属性,但 imageFiles 属性未包含在新模型中。我已经仔细检查了源模型($existingModel)中是否存在imageFiles属性,并且它是一个数组。可能导致此问题的原因,以及如何确保将 imageFiles 正确复制到新模型
编辑:imageFiles 属性是在 Model 中声明的文件数组,它使用以下上传函数进行处理:
public function upload()
{
if ($this->validate()) {
$path = Yii::getAlias('@doc_attivita') . "/" . $this->id;
FileHelper::createDirectory($path, $mode = 0775, $recursive = true);
foreach ($this->imageFiles as $file) {
$file->saveAs($path . "/" . $file->baseName . '.' . $file->extension);
}
return true;
} else {
return false;
}
}
答: 暂无答案
上一个:Yii2 使用多个数据库进行迁移
下一个:Yii2: 如何查找版本
评论
imageFiles
yii\web\UploadedFile