1

У меня есть Form, где я должен выполнить проверку после проверки базовой формы (расширение/переопределение Form#isValid(...)). Если это «проверка после проверки» не удается, добавить сообщение об ошибке в форме, как это:Как получить дополнительные сообщения об ошибках формы, переведенные в ZF2?

MyForm extends Form 
{ 
    protected $errorMessages = []; 
    public function isValid() 
    { 
     $isValidBasic = parent::isValid(); 
     $isValidAdditional = ...; 

     if (! $isValidAdditional) { 
      $this->addErrorMessage('my custom error message'); 
     } 
     return $isValidBasic && $isValidAdditional; 
    } 
    public function addErrorMessage($message) 
    { 
     $this->errorMessages[] = $message; 
     return $this; 
    } 
    public function getErrorMessages() 
    { 
     return $this->errorMessages; 
    } 
    public function getMessages($elementName = null) 
    { 
     if ($elementName) { 
      $messages = parent::getMessages($elementName); 
     } else { 
      $messages = array_merge($this->getErrorMessages(), parent::getMessages($elementName)); 
     } 
     return $messages; 
    } 
} 

Он работает, но «my custom error message» игнорируется «переводчиком», и я также получить оригинальное сообщение об ошибке отображается.

Я уже добавить новый перевод файл

класса Application\Module

namespace Application; 
... 
class Module 
{ 
    public function onBootstrap(MvcEvent $e) 
    { 
     $eventManager = $e->getApplication()->getEventManager(); 
     $moduleRouteListener = new ModuleRouteListener(); 
     $moduleRouteListener->attach($eventManager); 

     $translator = $e->getApplication() 
      ->getServiceManager() 
      ->get('translator'); 
     $translator->addTranslationFile('phpArray', 
      './vendor/zendframework/zend-i18n-resources/languages/de/Zend_Validate.php'); 
     $translator->addTranslationFile('phpArray', 
      './vendor/my/lib/src/i18n-resources/languages/de/Validate.php'); 
     AbstractValidator::setDefaultTranslator($translator); 
    } 
} 

... и это тоже работает. Но в этом случае это не так.

Как получить пользовательские сообщения Form, переведенные на ZF2?

ответ

0

На моем сайте ZF2, я решил, что, добавив следующий метод в моих моделях и формах:

protected function _translate($msg) 
{ 
    return $msg; 
} 

Не спрашивайте меня, почему это работает, но он работает только с этим, сообщения об ошибках, переведены ,

Смежные вопросы