저는 OhDateExtraValidatorBundle을 사용하고 있습니다. 내 Pull Request이 아직 받아 들여지지 않았기 때문에 로컬로 오버라이드해야합니다.Symfony2 : 번들의 유효성 검사기를 오버라이드합니다.
나는 the documentation을 읽었지만 유효성 검사기 제약 조건에 대해 작동하지 않을 수 있습니다. 여기
내가 무슨 짓을 :- 새로운 번들 (그래서 하나 개 이상의 통근 번들을 대체 할 수 있습니다) 등재, MyDateExtraValidatorBundle 라는
추가
getParent()
방법 :public function getParent() { return 'OhDateExtraValidatorBundle'; }
원본 bundl과 동일한 경로로 작성했습니다. E :
namespace MYVENDOR\MyDateExtraValidatorBundle\Validator\Constraints; use Oh\DateExtraValidatorBundle\Validator\Constraints\DateExtraValidator as ConstraintValidator; class DateExtraValidator extends ConstraintValidator { public function validate($value, Constraint $constraint) { parent::validate($value, Constraint $constraint); if (null === $value || '' === $value){ return; } if(is_object($value) && method_exists($value, '__toString')) { $value = (string) $value; } if (!$dateTime->getTimestamp()) { $this->context->addViolation($constraint->invalidMessage); return; } } }
그러나로드 적이 없어요.
또한 (사용자 지정 유효성 검사기를 사용하여) 클래스의 내 번들 이름을 직접 사용해 보았지만 작동하지 않습니다.
use MYVENDOR\MyDateExtraValidatorBundle\Validator\Constraints as OhAssert;
=>
The annotation "@MYVENDOR\MyDateExtraValidatorBundle\Validator\Constraints\DateExtra" [...] does not exist, or could not be auto-loaded.
할 수있는 올바른 방법은 무엇입니까
?
고마워, 정확히 내가 필요로하는 것, 네임 스페이스를 추가 한 후 완벽하게 작동합니다! 생각해 보면, 번들 검사기를 재정의하는 것이 "정상적인"방법 일 수는 없습니다. 그것은 꽤 깨끗하고 많은 코드 라인을 필요로하지 않습니다 ..! – Bonswouar
@Bonswouar * "정상적인 방법"*이어야합니다.이 기능은 문서 링크에 명시된대로 아직 구현되지 않았습니다. * "진행 중"*. – Touki
구현 된 것, 문서화 된 것 등은 무엇을 의미합니까? Btw 당신이보고 싶다면 [다른 문제] (http://stackoverflow.com/questions/18403366/symfony2-recursive-validation)가 있습니다! ;) – Bonswouar