少しはまったのでシェア
例えばPostモデルで定義したhogeフォームのバリデーションを下のように定義します。
Controller では $helpers = array(‘Session’); を定義しておきます。
<?php
class Post extends AppModel {
public $validates = array(
'hoge' => array(
'rule' => 'notEmpty',
'message' => 'hogehogehoge'
)
);
}
CakePHPのチュートリアルではモデルでバリデーションを定義すれば自動的にエラーメッセージが出力されたのですが、レイアウトを独自なものにした場合(案の定)表示されない。
エラーメッセージを出力するコードはどこかなぁと探してみるとありました。
flash( $key = ‘flash’, $attrs = array ( ) )
http://api20.cakephp.org/class/session-helper#method-SessionHelperflash
エラーメッセージを出力したい場合ビューで次のように書きましょう。
<?php echo $this->Session->flash();?>
あとはCSSで綺麗に装飾してあげればok
自分の場合はコントローラーのメソッドで $this->Session->setFlash(‘表示したい内容’); を定義して、出力します。
CSSやテンプレートはメソッド毎にわけているので切り替えが相当楽です。
よりよいやり方があれば教えてくださいー( ´ω`)