2011-03-26 4 views
0

나는이 스키마를()). 가 포함 된 양식 필드의 유효성 검사기를 변경

내가 필드에 아무것도 삽입하지 않으면, 자동 리브로 양식을 제출 중 한 최초의 임베디드 형태 (리브로)의 'paginas', 그것은 "필수"보여줍니다.

하지만 .. 왜 paginas에 유효성 검사기 통과가 있습니까?

편집가 :

var_dump($this->embeddedForms['Libro']->validatorSchema['newLibro1']['paginas']); 
$this->embeddedForms['Libro']->validatorSchema['newLibro1']['paginas'] = new sfValidatorPass(array('required' => false)); 
var_dump($this->embeddedForms['Libro']->validatorSchema['newLibro1']['paginas']); 

그것은이 인쇄 : 매트의 대답 후,이 내 코드입니다

object(sfValidatorString)[152] 
    protected 'requiredOptions' => 
    array 
     empty 
    protected 'defaultMessages' => 
    array 
     'required' => string 'Required.' (length=9) 
     'invalid' => string 'Invalid.' (length=8) 
     'max_length' => string '"%value%" is too long (%max_length% characters max).' (length=52) 
     'min_length' => string '"%value%" is too short (%min_length% characters min).' (length=53) 
    protected 'defaultOptions' => 
    array 
     'required' => boolean true 
     'trim' => boolean false 
     'empty_value' => string '' (length=0) 
     'max_length' => null 
     'min_length' => null 
    protected 'messages' => 
    array 
     'required' => string 'Required.' (length=9) 
     'invalid' => string 'Invalid.' (length=8) 
     'max_length' => string '"%value%" is too long (%max_length% characters max).' (length=52) 
     'min_length' => string '"%value%" is too short (%min_length% characters min).' (length=53) 
    protected 'options' => 
    array 
     'required' => boolean true 
     'trim' => boolean false 
     'empty_value' => string '' (length=0) 
     'max_length' => int 255 
     'min_length' => null 

object(sfValidatorPass)[196] 
    protected 'requiredOptions' => 
    array 
     empty 
    protected 'defaultMessages' => 
    array 
     'required' => string 'Required.' (length=9) 
     'invalid' => string 'Invalid.' (length=8) 
    protected 'defaultOptions' => 
    array 
     'required' => boolean true 
     'trim' => boolean false 
     'empty_value' => null 
    protected 'messages' => 
    array 
     'required' => string 'Required.' (length=9) 
     'invalid' => string 'Invalid.' (length=8) 
    protected 'options' => 
    array 
     'required' => boolean false <<<<<<<<<<<< FALSE <<<<<<<<<<<<<<<<<< 
     'trim' => boolean false 
     'empty_value' => null 

문제는 여전히 동일합니다 : 내가 양식을 제출하려고 할 때, 필드 'paginas'는 여전히 필요합니다. 왜? 김포 1.4

/1.6

하비 sfValidatorPass 필요 = true로 기본 포함

답변

0

거의 모든 검증을 추진.

sfValidatorPass는 "항상 유효성 검사를 통과합니다"라는 뜻이 아니라 "제출 된 값을 정리하거나 아무것도 확인하지 않고 통과합니다."라는 의미는 아닙니다.

sfValidatorPass는 신원 검사기입니다. 변경되지 않은 값을 반환합니다.

그래서 난 내가 편집 더 단서를 추가하는 내 질문이 있습니다 ... 당신이 말하는하지만 여전히 작동하지 않는 라인을 작성, 당신은 단지

$this->validatorSchema['Libro']['newLibro1']['paginas'] = new 
    sfValidatorPass(array('required' => false)); 
+0

감사를 할 수 있다고 생각합니다. – ziiweb

+0

흠, 나도 몰라. 귀하의 양식 필드는 실제 제출물에서 어떻게 구성되어 있습니까? - 제출 된 페이지가 유효성 검증기를 누르지 않고 BaseAutorForm의 기본 유효성 검사기에 도달 할 가능성이 있습니까? – matt

관련 문제