2009-03-27 1 views
0

Symfony에서 이상한 문제가 발견 된 것 같습니다.양식 -> getParameter 값이 null 인 경우 웹 응용 프로그램이 중단됩니다.

은 여기 내 업로드의 경우 폼의 :

<?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() 
     )); 



    } 
} 
?> 

그리고 액션 클래스는 이것이다 :

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')); 


    } 

} 

내가 파일을 업로드 한 후, $request->getParameter('UploadCase')는 NULL을 반환해야 함을 기대하지만, 충돌하지 않을 웹 응용 프로그램. 대신 웹 앱이 다운되었습니다.

내가 잘못한 것은 무엇입니까?

답변

0

이것은 a bug, I think입니다. 이 버그는 $request->getParameter('UploadCase')에 파일 업로드가 1 개 뿐이며 다른 필드가 없기 때문에 발생합니다. 따라서 아래 명령문은 null을 반환합니다.

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

그리고 이것은 내일이없는 것처럼 충돌 문

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

의 원인이됩니다.

관련 문제