CakePHP1.2 では Form ヘルパーの input メソッドでエラーメッセージを自動的に表示することが可能です。 自動的にエラーメッセージを表示するためには CakePHP1.2 のバリデーション で書いたようにモデルのバリデーションでエラーメッセージを設定しておきます。

/* モデルのバリデーション */
var $validate = array(
    'email' => array(
        'required' => array(
       	    'rule'=>VALID_NOT_EMPTY ,
       	    'message' => '必須項目です'
       	),
);

/* View の Form ヘルパー */
echo $form->input('User/email', array('type'=>'text'));


しかしデザインの関係でエラーメッセージを表示する場所を自分で決めたい場合があります。そのときは Formヘルパーの input メソッドでエラー表示を抑止して、error メソッドでエラーを表示します。

/* error に false を指定することでエラーメッセージを抑止できる */
echo $form->input('User/email', array('type'=>'text', 'error'=>false));

/* エラーを表示させたい場所に */
echo $form->error('User/email');

エラーがなければ当然 error メソッドでは何も表示されません。

逆に input メソッドでエラーメッセージを指定することもできます。

echo $form->input('User/email', array('type'=>'text', 'error'=>'エラーです'));

関連する投稿