我找到了原因,我使用的是功能得到得到錯誤的列表它們編碼的JSON在Ajax的形式來使用,這是功能:
private function getFormErrorMessages(Form $form)
{
$errors = array();
foreach ($form->getErrors() as $key => $error) {
$template = $error->getMessageTemplate();
$parameters = $error->getMessageParameters();
$error = $template;
foreach ($parameters as $var => $value) {
$error = str_replace($var, $value, $template);
}
$errors[] = array(
'error' => $error,
'template' => $template,
'parameters' => $parameters,
);
}
if ($form->count()) {
foreach ($form as $child) {
if (!$child->isValid()) {
$errors = array_merge($errors, $this->getFormErrorMessages($child));
}
}
}
return $errors;
}
好,碰巧這函數獲取已翻譯的正常錯誤(來自Asserts),但不是UniqueEntity的。也許,在視圖創建過程中似乎會被翻譯。
因此,我只是返回包含json中的錯誤的新渲染表單,並用它替換了舊的表單,並且所有的錯誤都像他們應該翻譯的那樣。
你有'翻譯器'啓用? http://symfony.com/doc/current/book/translation.html#book-translation-configuration另外,請在問題中包含您的'validation.yml'代碼。 –
您是否試圖翻譯表單中的驗證消息?如果是......翻譯過程本身通常在那裏進行。 – nifr
@carrie kendall翻譯器已啓用,就像我說過的,我有其他驗證器翻譯工作在同一個文件中。似乎只有使用此UniqueEntity纔會出現問題,Symfony \ Component \ Validator \ Constraints命名空間中的所有其他斷言都可以使用。 – Oylex