• 締切済み

CakePHPでvalidateのメッセージの表示

バリデーションで設定したエラーメッセージをsetFlashで表示したいのですが、 エラーメッセージ(下記のhoge)を取得する方法はありますか? CakePHP 2x Model public $validate = array( 'username' => array( 'rule' => 'notEmpty' 'message' => 'hoge' ) ); Controller $this->Session->setFlash('test'); $this->redirect('index');

みんなの回答

  • mpro-gram
  • ベストアンサー率74% (170/228)
回答No.1

$this->Model->save() のあとに、$this->Model->invalidFields() でエラーが出たフィールド名と、validate に定義されているmessage が連想配列で取得できます。 入力に関係なく直接取り出すなら、public propaty ですから、そのまま配列のキーを指定してやればいいですよ // Controller method 内記述 $message= $this->Model->validate['username'][message'];

sasaki027
質問者

お礼

回答ありがとうございます。 早速実行してみたのですが、save後にinvalidFields()で メッセージが二重になって返ってきました。 何が原因かわかりますか? if($this->Model->save($data)){ echo "成功"; } else { debug($this->Model->invalidFields()); } array( 'username' => array( (int) 0 => 'hoge', (int) 1 => 'hoge' ) )

関連するQ&A