2009-03-27 3 views
0

Je pense avoir trouvé un problème étrange dans Symfony.Formulaire Upload avec request-> getParameter value vaut null crash de l'application web

Voici mon formulaire de cas de téléchargement:

<?php 

class UploadCaseForm extends sfForm { 
    public function configure() 
    { 
     $this->setWidgets (array ('Documents' => new sfWidgetFormInputFile ())); 
     $this->widgetSchema->setNameFormat('UploadCase[%s]'); 
     $this->setValidators(array(
     'Documents'=>new sfValidatorFile() 
     )); 



    } 
} 
?> 

Et la classe d'action est la suivante:

public function executeIndex(sfWebRequest $request) { 

    if ($this->getRequest()->getMethod() == sfRequest::GET) { 
     $this->form = new UploadCaseForm (); 
    } else if ($this->getRequest()->getMethod() == sfRequest::POST) { 
     $this->form->bind ($request->getParameters('UploadCase'), $request->getFiles ('UploadCase')); 


    } 

} 

Je me attends à ce que, après je télécharger un fichier, $request->getParameter('UploadCase') doit renvoyer une valeur NULL, mais pas écraser l'application web. Au lieu de cela, l'application Web s'est bloquée.

Tout ce que je fais mal?

Répondre

0

Ceci est a bug, I think. Le bug est parce que $request->getParameter('UploadCase') a seulement 1 téléchargement de fichier, pas d'autres champs. Donc, l'instruction ci-dessous renverra null.

($request->getParameter('UploadCase')); 

Et cela entraînera la déclaration

$this->form->bind ($request->getParameters('UploadCase'), $request->getFiles ('UploadCase')); 

crash comme il n'y a pas de lendemain.