yii.2.0中的图像更新问题

时间:2015-07-23 11:54:32

标签: yii2

我是一名新手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,
            ]);
        }
}

1 个答案:

答案 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;