我是一名新手php开发人员。在yii2.0框架中工作!!我有一个表单来创建新记录并更新现有表单。我的问题是我提交输入字段来上传表单中的图像。上传新图像和更新旧图像工作正常,但我想要它,如果用户在更新时没有上传新图像,旧图像本身应该保存,我该怎么做?请帮助我,非常感谢任何帮助。
这是我在控制器中的actionUpdate函数
public function actionUpdate($id)
{
$model = $this->findModel($id);
if ($model->load(Yii::$app->request->post()))
{
$imageInstance = \yii\web\UploadedFile::getInstance($model,'Image');
$randm = rand(278, 99999);
$fileName = "{$randm}-{$imageInstance}";
$model->Image = $fileName;
$userId = \Yii::$app->user->identity->userId;
$restaurantId = \app\models\Restaurantbusiness::findOne(['userId' =>
$userId])->restaurentID;
$model->restaurantBusiness_restaurentID = $restaurantId;
$model->delFlg = 0;
$model->createdDate = date('Y-m-d');
$model->modifiedDate = date('Y-m-d');
if($model->save())
{
$imageInstance->saveAs('../uploads/' . $fileName);
return $this->redirect(['view', 'id' => $model->menuId]);
}else
{
return $this->render('create', [
'model' => $model,
]);
}
}else
{
return $this->render('update', [
'model' => $model,
]);
}
}
答案 0 :(得分:0)
基本上你需要检查图像区域是否为空。
一个基本的例子是使用php Ternary Operator 文档:http://php.net/manual/en/language.operators.comparison.php
如果$ imageInstance为空,则创建一个名为image的变量,其中包含数据库中的图像,否则它将获取上传的图像
$image = (empty($imageInstance))? $model->Image : $fileName ;
然后将变量分配给模型
$model->Image = $image;