読者です 読者をやめる 読者になる 読者になる

Motomichi Works Blog

その日学習したことについて書いている日記です。誰かの役に立ったらそれはそれで嬉しいです。

さくらvpsとcakephp2.6.7で開発日記 その0010 バリデーションエラーの項目にだけ任意の要素を表示する $this->Form->isFieldError('example')

参考にさせて頂いたページ

FormHelper — CakePHP Cookbook 2.x ドキュメント

やりたいこと

バリデーションエラーがあったinput要素に対して、CSSのクラスを付け替えて色を変えたり、HTML要素を表示したい。

任意のctpに記述する内容

例として以下の通り。

<?php if ($this->Form->isFieldError('example')) { ?>
  <div>name="example"のinput要素がバリデーションエラーのときに表示される領域</div>
<?php } ?>

上記の例では、name="example"の要素にバリデーションエラーがあるかどうかを、$this->Form->isFieldError('example')で取得しています。

これで、エラーのときだけ好きな箇所に要素を表示したり、CSSのクラスを付けたりできます。

おまけ

CSSのクラス名や、クラスを付与する要素にこだわらない場合は、form-errorクラスが自動的にinput要素やtextarea要素に付与されるため、それを利用したCSSを書くとViewがきれいですね。