Super! Ich bin noch ganz frisch was MVC angeht, ich werde mir mal die
Unterschiede zu den beiden Lösungen anschauen. Vielen dank, nun haben
sicher auch andere anfänger ein paar gute Ansätze für ein
Registrierungsformular :)

On 2 Jan., 10:03, Trencavel <[EMAIL PROTECTED]> wrote:
> Am Dienstag, 1. Januar 2008 schrieb Dirk Olbertz:
>
> > Das ist leider gar nicht so einfach, wobei ich bei einigen Sachen
> > nicht genau weiß, ob das ein Bug in CakePHP 1.2.x ist, oder so
> > beabsichtigt ist.
>
> > Du musst auf jeden Fall das zweite Passwortfeld mit einem anderen
> > Namen versehen. Also z.B. "password_confirm" statt nur "password".
> > Ich hatte nun mal versucht, einfach eine eigene Methode für die
> > Validierung anzugeben und darin dann "password" und
> > "confirm_password" zu vergleichen. Seit einer bestimmten CakePHP
> > 1.2.x Version sind dort dann aber nur noch die Felder vorhanden, die
> > auch in der Datenbank sind. Also kannst Du das dann leider nicht über
> > die Validierung machen, sondern musst das händisch im Controller
> > machen:
>
> Hi Dirk, hi Christian, hi Liste,
>
> mann muss das nicht unbedingt im Controller ausführen. Zwecks MVC-Design
> würde ich folgendes machen (ist natürlich diskutabel :-)):
>
> View => add.ctp:
> <?php
>   echo $form->create('User');
>   echo $form->input('username');
>   echo $form->input('password');
>   echo $form->input('password_confirmation', array('type'=>'password'));
>   echo $form->input('email');
>   echo $form->submit('Registrieren');
>   echo $form->end();
> ?>
>
> im Controller für add-Aktion => users_controller.php:
>
>   function add()
>   {
>     if (!empty($this->data))
>     {
>       $this->User->create();
>       if ($this->User->save($this->data))
>       {
>         $this->Session->setFlash('The User has been saved');
>         $this->redirect(array('action'=>'index'), null, true);
>       }
>       else
>       {
>         $this->Session->setFlash('The User could not be saved. Please,
> try again.');
>       }
>     }
>   }
>
> und im Model user.php:
>
> <?php
>
> class User extends AppModel
> {
>   var $name = 'User';
>
>   var $validate = array (
>       'username' => array(
>           array(
>             'rule' => array('minLength', 6),
>             'message' => 'Dein Benutzername muss mindestens 6 Zeichen
> lang sein'
>           ),
>           array(
>             'rule' => array('maxLength', 40),
>             'message' => 'Dein Benutzername darf nicht länger als 40
> Zeichen lang sein'
>           )
>       ),
>       'password' => array(
>           array(
>             'rule' => array('minLength', 6),
>             'message' => 'Dein Benutzername muss mindestens 6 Zeichen
> lang sein'
>           ),
>           array(
>             'rule' => array('maxLength', 40),
>             'message' => 'Dein Benutzername darf nicht länger als 40
> Zeichen lang sein'
>           )
>       ),
>       'password_confirmation'    =>  array(
>           'rule' => 'passwordCompare',
>           'message' => 'Passwörter nicht gleich'
>       ),
>       'email'=> array(
>           'validEmail' => array(
>               'rule' => array('required' => VALID_EMAIL),
>               'message' => 'Dies ist keine korrekte Email-Adresse'
>           ),
>           'length' => array(
>               'rule' => array('maxLength',100),
>               'message' => 'Das Feld darf nicht mehr als 100 Zeichen
> enthalten'
>           )
>       )
>   );
>
>   function passwordCompare()
>   {
>     $compare = false;
>     if($this->data['User']['password'] == $this->data['User']
> ['password_confirmation'])
>     {
>       $compare = true;
>     }
>     return $compare;
>   }
>
> }
>
> ?>
>
> Ich hoffe ich hab' nicht allzuviel Fehler dabei gemmacht.
>
> Viele Grüße
> Trenc

--~--~---------~--~----~------------~-------~--~----~
Sie erhalten diese Nachricht, weil Sie Mitglied sind von Google Groups-Gruppe 
"CakePHP-de für deutsche CakePHP Entwickler".
 Für das Erstellen von Beiträgen in dieser Gruppe senden Sie eine E-Mail
an [email protected]
 Um sich von dieser Gruppe abzumelden, senden Sie eine E-Mail an [EMAIL 
PROTECTED]
 Weitere Optionen finden Sie in dieser Gruppe unter 
http://groups.google.com/group/cakephp-de?hl=de
-~----------~----~----~----~------~----~------~--~---

Antwort per Email an