0

私はエラーメッセージを一箇所にまとめて表示する必要があるフォームを持っています。ユーザは時々フィールドを形成されたどのメッセージ、知らないので、デフォルトのメッセージは、一般的である。ZF2の検証エラーメッセージに要素ラベルを統合する方法は?

入力に合致するレコードが見つかった

値が必要とされ

空にすることはできません

入力は

私はすべてのフィールド用のカスタムメッセージを書くことができ...有効なメールアドレスではなく、多くの努力をし、&ペーストをコピーします。

だから、私はこのようなメッセージを表示したい:

マイ要素フー・ラベル:値は次のとおりです。入力に合致するレコードが

マイ要素バーのラベルが見つかりました必要と

マイ要素つぶやくラベル空にすることはできません:入力が有効なメールアドレスではありません...

これを行うには?

答えて

0

ZF2は、この要件の解決策を提供していないようです。私の解決策/回避策は、所望のように$messagesを処理する方法を、Zend\Form\View\Helper\FormElementErrorsFormElementErrors#render(...)によって

$this->prepareMessagesToPrint($messages, $messagesToPrint, $element, $escapeHtml); 

these linesを交換オーバーライドし、追加することである。

protected function prepareMessagesToPrint($messages, &$messagesToPrint, $element, $escapeHtml) { 
    foreach ($messages as $nameOrType => $elementOrError) { 
     if (is_string($elementOrError)) { 
      $elementLabel = $element->getLabel() 
       ? '<b>' . $this->view->translate($element->getLabel()) . '</b>' . ': ' 
       : null 
      ; 
      $message = $escapeHtml($elementOrError); 
      $messagesToPrint[] = $elementLabel ? $elementLabel . $message : $message; 

     } elseif (is_array($elementOrError)) { 
      $newElement = $element->get($nameOrType); 
      $this->prepareMessagesToPrint(
       $elementOrError, $messagesToPrint, $newElement, $escapeHtml 
      ); 
     } 
    } 
} 
関連する問題