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