2017-01-29 2 views
0

Symfony 3 양식 오류 구성 요소에 문제가 있습니다. 양식에 직접 오류를 추가해야하지만 매개 변수가 값으로 대체되지 않습니다. Symfony3 형식 오류 매개 변수가 작동하지 않습니다.

$form->get('price')->addError(
    new \Symfony\Component\Form\FormError("Maximal value is %price% %currency%.", 
    null, 
    array('%price%' => 100, '%currency%' => 'YPI'))); 

나는 여전히 {{ currency }}{{ price }} 다른 유효성 검사기와 같이하지만 작품에 사용 된 매개 변수를 시도했다.

이 방법은 다음과 같습니다. http://quedig.com/questions/35271649/symfony-form-error-message-parameters-usage/하지만 최선의 방법은 아닙니다. 저는 여전히 고전 번역을 사용할 수있는 더 나은 솔루션을 믿습니다. 여기서 서비스 번역 결과를 제출하지 않아도됩니다.

FormError의 가장 좋은 용도는 무엇입니까? Symfony3 매뉴얼은 침묵합니다.

감사합니다.

답변

1

FormError의 생성자에 전달 된 메시지는 이미 변환되어야합니다. 그렇지 않으면 그대로 표시됩니다. 그래서 코드가 같은 것을 볼 수 있었다 : 그건 그렇고

// $translator should be the "translator" service 
$message = $translator->trans('Maximal value is %price% %currency%.', [ 
    '%price%' => 100, 
    '%currency%' => 'YPI', 
]); 
$form->get('price')->addError(new FormError($message)); 

를, 내가 번역 할 수있는 문자열로 메시지 자리 대신 실제 메시지를 사용하는 것이 좋습니다 내가 게시 된

+0

그것은 같은 솔루션입니다 (http://symfony.com/doc/current/best_practices/i18n.html#translation-keys 참조) 내 원래 쿼리에서. 그러나 거기에는 다른 해결책이없는 것 같습니다. 이제 FormError가 매개 변수와 같은 인수를 갖는 이유를 알 수 없습니다 .-D .. – Filip

관련 문제