質問
私のアカウントコントローラるのだが、独自のテーブルがユーザモデルです。
すべての動作を除きか検証せます。という検証に失敗した場合いず、検証チェックが作の誤り以下の分野
眺望
<?php echo $this->Form->input('id'); ?>
<label for="UserPassword">New Password:</label>
<?php echo $this->Form->text('password', array('type' => 'password', 'value' => 'harsha')); ?><em>Password must be min 6 characters.</em> <?php echo $form->error('password'); ?>
コントローラのアクション
if($this->User->saveField('password', $this->data['User']['password'], array('validate' => 'first'))) {
$this->Session->setFlash('Password has been changed.', 'flash-success');
} else {
$this->Session->setFlash('There was some problem with our system. Please try after some time.', 'flash-warning');
}
解決
単にフォーム送信後、あなたのコントローラにdebug()
だけでなく、あなたのビューで$this->validationErrors
の内容を$this->data
ing試してみてください。これはからの仕事にあなたに多くの情報を与える必要があります。
Account.id
とAccount.password
のUser.id
とUser.password
のための建物のフォームフィールド - 私はあなたの問題はケーキが間違ったモデルに基づいてフォーム入力を構築していると思われます。 FormHelper
は、コントローラからそのデフォルトモデルを取るので、これはあなたのケースでAccountsController
を表示される、から呼び出されたの見解/です。
User.id
とUser.password
が期待を扱うお使いのコントローラの提出をフィールド生成するために、あなたはあなたのUser.
呼び出しでFormHelper
を付加する必要があります。したがってます:
$this->Form->input('User.id');
$this->Form->text('User.password');
他のヒント
あなたは試したことがあります:
echo $session->flash()
;
注、それはエコーを返しません。 1.2私は戻っている間、このAをログに記録し、それが1.3手動で変更されていますが、ではない。
こんにちはきたい
したい場合はエラー-メッセージを返すからUserModelの検証
追加が可能なラインコード後、下記入力フォームのパスワード
<?php
if ($this->Form->isFieldError('password')) {
echo $this->Form->error('password', array('class' => 'error'));
?>
する場合がございますのでお示すエラーメッセージを設定する方法setFlash
すなリダイレクトのページを使用このセッション->フラッシュ('フラッシュの名前")のページのいいと思うので
<?php
//in UsersController
$this->Session->setFlash('message here', 'flash-name');
//in view
echo $this->Session->flash('flash-name');
?>
幸運を祈っています。