- 締切済み
CakePHPでvalidateのメッセージの表示
バリデーションで設定したエラーメッセージをsetFlashで表示したいのですが、 エラーメッセージ(下記のhoge)を取得する方法はありますか? CakePHP 2x Model public $validate = array( 'username' => array( 'rule' => 'notEmpty' 'message' => 'hoge' ) ); Controller $this->Session->setFlash('test'); $this->redirect('index');
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- 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'];
お礼
回答ありがとうございます。 早速実行してみたのですが、save後にinvalidFields()で メッセージが二重になって返ってきました。 何が原因かわかりますか? if($this->Model->save($data)){ echo "成功"; } else { debug($this->Model->invalidFields()); } array( 'username' => array( (int) 0 => 'hoge', (int) 1 => 'hoge' ) )