Php imagepath值的添加操作失败

Php imagepath值的添加操作失败,php,zend-framework,zend-db,Php,Zend Framework,Zend Db,在我的数据库中,我有一个varchar字段来保存包含图像文件名的路径。在我的viewscript中,我也使用此字段。如果我通过phpadmin在数据库中插入一个测试路径名,一切正常 如果使用控制器addAction,则无法保存路径,不会出错 以下是我的行动: $form = new Application_Form_Buch(); $form->submit->setLabel('Add'); $this->view->form = $form; if ($this-&g

在我的数据库中,我有一个
varchar
字段来保存包含图像文件名的路径。在我的viewscript中,我也使用此字段。如果我通过phpadmin在数据库中插入一个测试路径名,一切正常

如果使用控制器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);
    }
}
它工作得很好,它保存了所有提交的数据,而不是
$pfad
变量

新的: 必须是格式为
$imagepath
的东西,我刚刚为测试添加了:
$imagepath='/images/cover/迷宫_200.jpg'
并在我的数据库表中查找值。因此,错误的格式应该是获取
$imagepath

的值。我刚刚发现了我的(非常愚蠢的)错误

我更改了控制结构中的块,如下所示:

            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)
{
$imagepath=NULL;
}
否则{
echo“filename:”.$form->getElement('datei')->receive();
$imagepath=$form->getElement('datei')->getFileName();
//echo“filename:”.$form->getElement('datei')->getFileName();
$pathparts=pathinfo($form->getElement('datei')->getFileName());
//回显“pathparts:”。$pathparts;
//然后得到你想要使用的零件
$originalFilename=$pathparts['basename'];
//回显“originalFilename:”。$originalFilename;
//echo“Test basename:”.$originalFilename['basename'];
$form->getElement('datei')->addFilter('Rename','images');//'/images/upload/',$originalFilename
//将funktioniert重命名为so nicht
$originalFilename=$pathparts['basename'];
$imagepath=$form->getElement('datei')->getFileName();
$imagepath=str_replace($imagepath,“/images/cover/”$originalFilename,$imagepath);//funktioniert!!!
//回显“imagepath:”。$imagepath;
}
//$imagepath='/images/cover/迷宫_200.jpg';
$books=新应用程序_模型_数据库_Bibliothek();
$books->addBook($autor、$titel、$verlag、$imagepath);

在此之前,我尝试了
if($form->getElement('datei')->>receive()=1)
来验证我的条件。但我犯了个错误。所以我换了两个街区,现在可以了

错误消息是什么?正如我之前写的,我没有收到任何错误消息,只是记录集中的链接被取消了
            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 );