フォームの作成中、フォームの検証は簡単です。しかし、送信されたデータを検証してエラーメッセージをフォームに返すにはどうすればよいでしょうか。
たとえば、パスワード変更用のフォームがあるので、古いパスワードを確認し、新しいパスワードと確認パスワードが同じかどうかを確認する必要があり、失敗の段階でパスワード編集フォームにメッセージを表示する必要があります。
フォームの作成中、フォームの検証は簡単です。しかし、送信されたデータを検証してエラーメッセージをフォームに返すにはどうすればよいでしょうか。
たとえば、パスワード変更用のフォームがあるので、古いパスワードを確認し、新しいパスワードと確認パスワードが同じかどうかを確認する必要があり、失敗の段階でパスワード編集フォームにメッセージを表示する必要があります。
正しく設定されていれば、フォームがこれを行います。フォームは検証チェックを実行し、その後、formElementErrors ビュー ヘルパーを使用してエラーを無効にすることができます。フォームの設定方法のコードを貼り付けてもらえますか?
フォーム ビューでの表示検証エラーの例:
<?php $form->prepare() ?>
<?php echo $this->form()->openTag($form); ?>
<?php foreach($form->getElements() as $element): ?>
<div class="control-group">
<?php /* @var $element \Zend\From\Element */ ?>
<?php if($element->getLabel()): ?>
<?php echo $this->formLabel($element) ?>
<?php endif ?>
<?php // Show any validation errors for this element ?>
<?php echo $this->formElementErrors($element); ?>
<?php echo $this->formElement($element) ?>
</div>
<?php endforeach ?>
<?php echo $this->form()->closeTag() ?>
ビュースクリプトでそれを意味しますか?
<?php if ($form->getMessages()){
// alert
?>
<div class="alert alert-error">
<button class="close" data-dismiss="alert" type="button">×</button>
<strong><?php echo $this->translate("Are you awake ?"); ?></strong>
<?php echo $this->translate("Some data are not filled out correctly."); ?>
</div>
<?php
}?>
$form->getMessages()からエラーを出力した後