2015-04-30 25 views
2

在我的數據庫中我有一個varchar字段來保存路徑包括圖像文件的名稱。在我的視圖中,我也使用這個字段。如果我通過phpadmin在我的數據庫中插入一個測試路徑名,那麼一切正常。添加操作失敗的圖像路徑的值

如果我使用我的控制器addAction,我不能保存路徑,沒有錯誤。

這裏是我的addAction:

$form = new Application_Form_Buch(); 
$form->submit->setLabel('Add'); 
$this->view->form = $form; 
if ($this->getRequest()->isPost()) { 
    $formData = $this->getRequest()->getPost(); 
    if ($form->isValid($formData)) { 
     $autor = $form->getValue('autor'); 
     $verlag = $form->getValue('verlag'); 
     $titel = $form->getValue('titel'); 
     if($form->getElement('datei')->receive() <> 1) 
     { 
      echo ' filename:  '. $form->getElement('datei')->receive(); 
      $imagepath = $form->getElement('datei')->getFileName(); 
      //echo ' filename:  '. $form->getElement('datei')->getFileName(); 
      $pathparts = pathinfo($form->getElement('datei')->getFileName()); 
      //echo ' pathparts:  '. $pathparts; 
      //then get the part that you want to use 
      $originalFilename = $pathparts['basename']; 
      //echo '  originalFilename:  '. $originalFilename; 
      //echo '  Test basename:  '. $originalFilename['basename']; 
      $form->getElement('datei')->addFilter('Rename','images');  //'/images/upload/',$originalFilename 
      //rename funktioniert so nicht 
      $originalFilename = $pathparts['basename']; 
      $imagepath=$form->getElement('datei')->getFileName(); 
      $imagepath = str_replace($imagepath, "/images/cover/".$originalFilename, $imagepath); //funktioniert !!! 
      //echo '  imagepath:  '. $imagepath; 
      $books = new Application_Model_DbTable_Bibliothek(); 
      $books->addBook($autor, $titel, $verlag, $imagepath); 
     } 
     else{ 
      $imagepath=NULL; 
     } 

     // $this->_helper->redirector('index'); 
    } else { 
     $form->populate($formData); 
    } 
} 

請鴕鳥政策心目中,我試過了一下週圍,所以我必須留下一些評論。我測試了變量$imagepath並提供了想要的值,即:/images/cover/imagename.jpg。這個錯誤在哪裏pathvalue

這裏是我的附加功能,我用我的數據庫存儲:

public function addBook($autor, $titel, $verlag, $pfad) 
{ 
    $data = array(
     'autor' => $autor, 
     'titel' => $titel, 
     'verlag' => $verlag, 
     'pfad' => $pfad,      
    ); 
    $this->insert($data); 
} 

它的工作原理相當精細,它保存所有數據正在添加,而不是$pfad變量。

新: 必須是$imagepath格式的東西,我剛剛添加了測試:$imagepath= '/images/cover/Labyrinth_200.jpg';並在我的數據庫表中找到值。所以錯誤應該是獲取值爲$imagepath的格式。

+1

什麼是錯誤信息? –

+0

正如我之前寫的,我沒有得到任何錯誤消息,只是鏈接被解僱的記錄集 –

回答

0

我剛剛發現我的(非常愚蠢的)錯誤。

我換了塊在我的控制結構類似以下內容:

  if($form->getElement('datei')->receive() <> 1) 
      { 
       $imagepath=NULL; 
      } 
      else{ 

      echo ' filename:  '. $form->getElement('datei')->receive(); 
       $imagepath = $form->getElement('datei')->getFileName(); 
       //echo ' filename:  '. $form->getElement('datei')->getFileName(); 
       $pathparts = pathinfo($form->getElement('datei')->getFileName()); 
       //echo ' pathparts:  '. $pathparts; 
       //then get the part that you want to use 
       $originalFilename = $pathparts['basename']; 
       //echo '  originalFilename:  '. $originalFilename; 
       //echo '  Test basename:  '. $originalFilename['basename']; 
       $form->getElement('datei')->addFilter('Rename','images');  //'/images/upload/',$originalFilename 
       //rename funktioniert so nicht 
       $originalFilename = $pathparts['basename']; 
       $imagepath=$form->getElement('datei')->getFileName(); 
       $imagepath = str_replace($imagepath, "/images/cover/".$originalFilename, $imagepath); //funktioniert !!! 
       //echo '  imagepath:  '. $imagepath; 

      } 
      //$imagepath= '/images/cover/Labyrinth_200.jpg'; 
      $books = new Application_Model_DbTable_Bibliothek(); 

      $books->addBook($autor, $titel, $verlag, $imagepath); 

,我試圖if($form->getElement('datei')->receive() = 1)來驗證我的條件之前。但是我得到了一個錯誤。所以我切換了兩個模塊,現在它可以工作。