2011-11-01 3 views
0

Zend Framework 1.11을 사용하고 있고 레코드를 편집 한 후에 다른 이미지가 업로드되지 않아도 이미지 파일 필드는 비워집니다.편집 후 데이터베이스에서 이미지가 삭제되었습니다.

image=ifnull(%s, image) 

을 그리고 완벽하게 작동 :

나는 SQL 쿼리에이를 사용하여 MySQL의이 문제가되기 전에 해결했다. 나는 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(!empty($input['image2'])) 
     { 
      $item->image = $input['image2']; 
    } else { 
      $item->image = $input['image']; 
     } 


$item->save(); 

는이 같은 문제를 가진 다른 사람을 도움이되기를 바랍니다 :

그런 다음 컨트롤러에 간단히 말해서 나는 당신과 같이 저장 직전 경우/else 문()를 가지고있다.

관련 문제