Frage

Ich verwende einen Konto-Controller, der seinen eigenen Tisch haben tut aber Verwendungen Benutzermodell.

funktioniert Alles in Ordnung, außer - wenn ich jede Form bestätigen. Er sagt, die Validierung fehlschlägt (wenn ich versuche, die Validierung fehlschlagen zu überprüfen), aber tut den Fehler unter dem Feld

werfen

Ansicht

<?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'); ?>

Controller Aktion

            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');
            }
War es hilfreich?

Lösung

Versuchen Sie den Inhalt debug() Ihrer Ansicht nach $this->validationErrorsing sowie $this->data in Ihrem Controller nur nach einer Formular-Vorlage. Dies sollten Sie viel mehr Informationen zur Arbeit von.

Ich vermute, dass Ihr Problem ist, Kuchen baut Formulareingaben basierend auf der falschen Modell - Aufbau Formularfelder für Account.id und Account.password statt User.id und User.password. Dies liegt daran, FormHelper sein Standardmodell vom Controller nimmt / betrachtet es aufgerufen aus, die in Ihrem Fall erscheint AccountsController.

Um die User.id und User.password Felder Ihre Controller Vorlage Handhabung erwartet zu erzeugen, müssen Sie zu prepend User. in Ihrem FormHelper Anrufe. Also:

$this->Form->input('User.id');
$this->Form->text('User.password');

Andere Tipps

Haben Sie versucht:

echo $session->flash();

Beachten Sie, dass, was auch immer das Handbuch sagt, es gibt, nicht Echos. Ich loggte dieses eine Weile zurück, und es hat sich in der 1.3 Handbuch geändert, aber nicht die 1.2.

Hallo du, wer fragt
Wenn Sie Fehlermeldung angezeigt werden soll, dass der Rückkehr von UserModel der Validate
So Sie Zeile Code unten nach Eingabeformular Passwort hinzufügen

  <?php 
      if ($this->Form->isFieldError('password')) { 
       echo $this->Form->error('password', array('class' => 'error')); 
    ?>

und wenn Sie möchten Fehlermeldung zeigen, dass Satz von Verfahren setFlash
Sie müssen Seite umleiten und dann mit $ this-> Session-> Flash ( 'Flash-name') in Seite wollen Sie es zeigen

   <?php
    //in UsersController
    $this->Session->setFlash('message here', 'flash-name');
    //in view
    echo $this->Session->flash('flash-name');
   ?>

Viel Glück!

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top