2011-11-01 34 views
0

我正在使用Zend Framework 1.11,並且在編輯記錄後,即使沒有上傳其他圖像,也會清空圖像文件字段。編輯後在數據庫中刪除的圖像

我已經在SQL查詢中使用這個這個問題與MySQL之前解決:

image=ifnull(%s, image) 

而且完美。我現在正在與Zend合作,但我不確定如何做到這一點。任何人都可以幫忙嗎?

控制器代碼:

$input = $form->getValues(); 
     $item = Doctrine::getTable('Tcc_Model_Item') 
      ->find($input['article_id']); 

     $item->fromArray($input); 
     $item->save(); 

更新使用學說模型來完成。

表單字段是:

$image = new Zend_Form_Element_File('image'); 
$image->setLabel('Image') 
     ->addValidator('IsImage') 
     ->setDestination('../public/uploads') 
     ->addValidator('Size', false, '404800') 
     ->addValidator('Extension', false, 'jpg,png,gif') 
     ->addValidator('ImageSize', false, array(
         'minwindth' => 50, 
         'minheight' => 50, 
         'maxwidth' => 250, 
         'maxheight' => 250)) 
    ->setOptions(array('class' => 'create')); 
+0

您需要發佈編輯記錄的代碼 – Ashley

回答

0

我想回答我自己的問題,因爲我找到了解決辦法我自己,我會幫上一些別的。

所以我做了什麼來解決這個問題是:

  1. 增加了一個隱藏字段用於編輯這樣的形式:

    $圖像=新Zend_Form_Element_Hidden(「圖像」);

  2. 更改爲圖像文件場(上傳新圖片),使用不同的名稱是這樣的:

    $圖像2 =新Zend_Form_Element_File(「圖像2」);

這樣編輯隱藏字段將包含「圖片」字段的信息,如果有的話。

然後在控制器我只是有一個if/else語句保存之前()是這樣的:

if(!empty($input['image2'])) 
     { 
      $item->image = $input['image2']; 
    } else { 
      $item->image = $input['image']; 
     } 


$item->save(); 

希望它可以幫助別人有同樣的問題。

相關問題