2013-09-25 6 views
2

I'v는 사용자 정의 유효성 검사기를 creatated. 작동하지 않는 것은 오류 메시지의 출력입니다.젠드 양식 양식 정의 유효성 검사기에서 오류 메시지가 displayin하지

echo $this->formElementErrors($form->get('action')); 

출력되는 것은 모두 공백 UL입니다. 이것이 번역사 문제입니까? 유효성 검사기에서 $ this-> getTranslator()에 대해 get_class를 수행 할 때 유효성 검사기 클래스 이름을 얻습니다. var_dump $ this-> getTranslator()는 null을 출력합니다. 이 작업을 수행하려면 번역자를 설정해야하며 해당 번역기를 설정하여 자신의 유효성 검사기를 시스템 전체에 적용 할 수있는 최적의 위치는 어디에 있어야합니까?

+0

당신은 몇 가지 코드를 넣을 수 있을까요? –

답변

2

는 부모 __construct 암시 적으로 호출되지 않습니다 :

public function __construct($dbAdapter) 
{ 
    $this->dbAdapter = $dbAdapter; 
    //parent::__construct($options); 
    parent::__construct(null); // or (void) 
} 
: http://php.net/manual/en/language.oop5.decon.php

당신은 당신의 __construct 방법을 수정해야합니다 (참고를 참조하십시오)

볼 수 있듯이 $messageTemplates$messageVariablesAbstractValidator::__construct에서 "로드"되어 일부 방법에서 사용됩니다 ()을 포함 : 당신이 그것을 사용하는 방법

https://github.com/zendframework/zf2/blob/master/library/Zend/Validator/AbstractValidator.php#L73-L79

+0

간단합니다. 때때로 당신은 명백한 것을 지적 할 누군가가 필요합니다. 고맙습니다! – Borje

0

메시지 변수을 추가하는 것을 잊어 버리셨습니까? 당신이 당신의 Validator 클래스에 대한 __construct 방법을 정의하기 때문에

/** 
* Message variables 
* @var array 
*/ 
protected $messageVariables = array(
    'value' => 'value', 
); 
+0

value 매개 변수를 제외한 모든 변수를 사용하지 않습니다. 문서에 따르면 messageVariables 변수를 지정하지 않아도됩니다. 그러나 그것을 시험해보기 위해 나는 어쨌든 그것을 추가하기를 원한다. 그러나 여전히 운이 없다. – Borje