2011-01-05 5 views
0

CSV 파일을 업로드 할 수있는 양식이 있습니다. 그것은 구분 기호와 CSV 파일을 요청 :유효성 검사에 Zend_Form 입력 사용

public function init() 
    { 
     $this->setName('UploadCsvForm'); 

     $delimiter = new Zend_Form_Element_Text('delimiter'); 
     $delimiter->setLabel('Delimiter') 
        ->setValue(',') 
        ->setAttrib('size', 2); 

     $csv = new Zend_Form_Element_File('csvFile'); 
     $csv->setLabel(
      'Pick a CSV file to upload') 
      ->setRequired(true) 
      ->addValidator('Count', false, 1) 
      ->addValidator('Extension', false, 'csv') 
      ->addValidator('Size', false, 102400) 
      ->setDestination('/tmp'); 

     $submit = new Zend_Form_Element_Submit('submit'); 
     $submit->setLabel('Upload bestand'); 

     $this->addElements(array($delimiter, $csv, $submit)); 
    } 

내가 Zend_Validate_Abstract을 확장하는 사용자 정의 CSV 유효성 검사 파일을 가지고있다. 작동하지만 입력 한 양식 CSV 파일을 함께 유효성을 검사 할 수 있기를 원합니다. 이 같은 것을 추가 할 수 있지만 $ 구분 기호가 아직 설정되지 않았기 때문에 작동하지 않습니다.

->addValidator(new Custom_Validate_Csv(array('name', 'postcode'), $delimiterString), false) 

아이디어가 있으십니까? 감사합니다. . 해당 요소를 호출 isValid()Zend_Form

답변

2

, 그것은 모든 폼 값을 포함하는 제 $context 파라미터를 전달한다.

public function isValid($value, $context) 
{ 
    $delimiter = $context['delimiter']; 

    // continue with your validation using the delimeter 
    // ... 
} 
:

따라서, 사용자 정의 유효성 검사기에서 isValid() 방법은 같아야합니다

관련 문제