2016-10-05 4 views
0

Ich versuche ein Image mit Zend Form hochzuladen. Wie wir es brauchen, um das Bild zu verschieben, möchte ich einen Filter hinzufügen, um den Job zu erledigen. Aber ich kann die getInputFilterChain() nicht verwenden, ich habe weiterhin diesen schwerwiegenden Fehler: Call to undefined method Zend\InputFilter\InputFilter::getFilterChain(). Was fehlt mir hier?Zend Formular: Aufruf zu undefinierter Methode Zend InputFilter InputFilter :: getFilterChain()

Ich bin in der Lage, die Dateiinformationen in $ PRG-Array zu bekommen. Und wie ich auf https://framework.zend.com/manual/2.4/en/modules/zend.mvc.plugins.html schaute, soll diese Methode hier existieren, nicht?

Und ich bekomme den gleichen Fehler, wenn ich das in meiner Form.php-Datei verwende.

Vielen Dank im Voraus für Ihre Zeit!

Mein Controller-Aktion:

public function signinAction() 
{ 
    $this->em = $this->getServiceLocator()->get('doctrine.entitymanager.orm_default'); 

    $form = new SignupForm($this->em); 

    $form->getInputFilter()->getFilterChain()->attach(
     new Zend\Filter\File\RenameUpload(array(
      'target' => './data/tmpuploads/file', 
      'randomize' => true, 
     )) 
    ); 

    $model = new ViewModel(array("form" => $form)); 


    $url = $this->url()->fromRoute("signin"); 
    $prg = $this->fileprg($form, $url, true); 

    if($prg instanceof \Zend\Http\PhpEnvironment\Response){  
     return $prg; 
    } 
    else if($prg === false){ 
     return $model; 
    } 

    //other stuff 
    ... 
} 

Antwort

1

Sie benötigen die Input Instanz aus dem InputFilter ersten bekommen und dann können Sie den Filter-Kette vom Eingang erhalten:

$inputName = 'file'; // name of the input you want to work with 
$input = $form->getInputFilter()->get($inputName); 
$filterChain = $input->getFilterChain(); 
+0

Ha dies wie sehr scheint sehr sehr logisch. Nochmals vielen Dank für Ihre Zeit! – KatharaDarko

Verwandte Themen