간단한 데이터 변환기는 숫자를 엔티티로 변환하며, 그 반대의 경우도 마찬가지입니다. official documentation의 예와 매우 흡사합니다.Symfony에서 DataTransformer 오류 메시지를 사용자 정의하는 방법은 무엇입니까?
는 reverseTransform
방법 엔티티들을 변환 실패 때 설명 메시지와 TransformationFailedException
발생 :
public function reverseTransform($number)
{
if (!$number) {
return null;
}
$issue = $this->om
->getRepository('AcmeTaskBundle:Issue')
->findOneBy(array('number' => $number))
;
if (null === $issue) {
throw new TransformationFailedException(sprintf(
'An issue with number "%s" does not exist!',
$number
));
}
return $issue;
}
"는이 값이이 유효하지". 예외 텍스트를 변경하더라도 (유효성 검사 메시지로 사용될 것으로 예상되지만 그렇지 않은 경우 ...) 오류 메시지는 변경되지 않습니다.
"이 값은 유효하지 않은"대신에 예외 텍스트를 어떻게 표시 할 수 있습니까?
첫째, 감사합니다. 당신은 방법이 작동해야하고 적어도 무슨 일이 일어나고 있는지 좋은 사용자 의견을 제공합니다. 어쩌면 이것을 할 수있는 "표준"방법이있을 것입니다. 나는 더 나은 방법을 원할 것입니다. – gremo
이 메시지를 사용자 정의 할 수있는 다른 방법을 찾을 수 없지만 symfony 양식 만이 제어 예외 이벤트를 catch합니다. https://github.com/symfony/Form/blob/master/Form.php#L612 솔루션으로 POST_SUBMIT를 사용하여 동기화 된 속성을 제어 할 수 있지만 시도하지 않았습니다. – ZhukV
예외는 디버그 전용입니다. 노출 될 수있는 방법은 제공되는 대답입니다. 그렇지 않으면 적절한 메시지가있는 올바른 필드에 submit listener 중 하나를 사용하고'$ form-> addError (새로운 FormError ('my message'))'를 사용해야합니다. 어쨌든 좋은 매핑과 좋은 메시지로 루트가 무효화됩니다. – Heah