0
問題是如果我想更新其他字段而不是圖像。它通過驗證並且不更新任何字段。不更新圖像不更新記錄
但是,如果我更新圖像和其他領域更新。或者,如果我更新它更新的圖像。
查看:
<?php echo $form->labelEx($model,'pimg'); ?>
<?php echo $form->fileField($model, 'pimg',array('id'=>'imgInput',)); ?>
<?php echo $form->error($model,'pimg'); ?>
控制器:
public function actionEdit($id)
{
$model=$this->loadModel($id);
if(isset($_POST['Product']))
{
$model->pimg=CUploadedFile::getInstance($model,'pimg');
$fileName=$model->pimg;
$model->attributes=$_POST['Product'];
if($model->save())
$model->pimg->saveAs('images/'.$fileName);
$this->redirect(array('display','id'=>$model->productid));
}
$this->render('edit',array('model'=>$model,));
}
型號規則:
array('name, category, model, brand, description, price', 'required'),
array('pimg', 'file','types'=>'jpg','on'=>'create', 'allowEmpty'=>false),
array('pimg', 'file','types'=>'jpg','on'=>'update', 'allowEmpty'=>true),
我認爲這個問題是與控制器。我不斷收到錯誤:
Fatal error: Call to a member function saveAs() on a non-object in D:\wamp\www\testfolder\protected\controllers\ProductController.php on line 147
line 147: $model->pimg->saveAs('images/'.$fileName);
影像出現,但隨後從數據庫映像名稱不旁邊的選擇文件按鈕渲染說明沒有文件選擇出現。
請注意,我是Yii的新手,並且堅持這一點。
感謝名單:)雅千真萬確的......我做了......但上面的代碼需要更多的變體N什麼,如果圖像沒有更新它不會保存現有的圖像....結果空存儲在分貝...如果(圖像存在&&沒有上傳){//保存代碼}其他{///保存上傳的圖像} ......那就是它 – hir
更新了我的答案 –
雅好一個........ – hir