Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Yii2 yii.2.0中的图像更新问题_Yii2 - Fatal编程技术网

Yii2 yii.2.0中的图像更新问题

Yii2 yii.2.0中的图像更新问题,yii2,Yii2,我是一个新的php开发人员。在yii2.0框架下工作!!。我有一个表单来创建新记录并更新现有表单。我的问题是我需要在文件输入字段中上载表单中的图像。上传新图片和更新旧图片都很好,但我希望这样,如果用户在更新时不上传新图片,旧图片本身应该被保存,我应该怎么做?请帮助我,任何帮助都将不胜感激 这是控制器中的actionUpdate函数 public function actionUpdate($id) { $model = $this->findModel($id); if (

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

基本上,您需要检查图像字段是否为空

一个基本的例子是使用php三元运算符 文件:

创建一个名为image的变量,如果$imageInstance为空,则该变量包含数据库中的图像,否则它将获取上载的图像

$image = (empty($imageInstance))? $model->Image : $fileName ;
然后将变量指定给模型

$model->Image = $image;

基本上,您需要检查图像字段是否为空

一个基本的例子是使用php三元运算符 文件:

创建一个名为image的变量,如果$imageInstance为空,则该变量包含数据库中的图像,否则它将获取上载的图像

$image = (empty($imageInstance))? $model->Image : $fileName ;
然后将变量指定给模型

$model->Image = $image;

您可以像创建或更新按钮一样检查新记录。例如$model->isNewRecord?创建:更新您可以像创建或更新按钮一样检查新记录。例如$model->isNewRecord?create:updatethank谢谢你回复我,先生:),我应该在哪里写这段代码??在$model->Image=$fileName;之后?你能把代码重写给我吗!!我不知道在哪里添加上面的代码:(代码应该放在$fileName之后,$model->image之前我收到了这个错误“在非对象上调用成员函数saveAs()”它不起作用,实际上我在提交表单后没有选择任何图像就没有在$image中获得任何值谢谢你回复我先生:),我应该在哪里写这段代码??在$model->Image=$fileName;之后?你能把代码重写给我吗!!我不知道在哪里添加上面的代码:(代码应该放在$fileName之后,$model->image之前)我收到这个错误“在非对象上调用成员函数saveAs()”它不起作用,实际上我在提交表单后没有选择任何图像,就没有在$image中获得任何值