Dazu habe ich folgende Zeile:
- Code: Alles auswählen
- $this->User->findByUsername($this->data->User->username);
Wenn ich den Inhalt von $this->data ausgeben lasse bekomme ich folgende Ausgabe:
Array
(
[User] => Array
(
[world_id] => 0
[username] => Test
[password] => be31855d4095fc6d1449c4a12a8676eb9e8ae029
[email] => test@test.de
[anb] => 1
)
)
Ich verstehe nicht, warum bereits bei der Ausgabe von $this->data->User nichts mehr kommt.
Es werden keine Daten mehr angezeigt.
Was mache ich falsch?
Gibt es eine bessere Lösung für das was ich programmieren will?
Ich möchte beim registrieren des Users bereits weitere Einträge in anderen Tabellen erzeugen, auf die der User später zugreifen wird und vordefinierte Werte eintragen.
Um dies machen zu können benötige ich die ID des gerade gespeicherten Datensatz.
Hier mal mein ganzer Code:
- Code: Alles auswählen
- function add() {
if (!empty($this->data)) {
$this->User->create();
if ($this->User->save($this->data)) {
$this->User->saveField('group', 'spieler');
pr($this->data);
$this->User->findByUsername($this->data->User->username);
$this->Player->create();
if ($this->Player->saveFild('user_id', $this->User->id) && $this->Player->saveFild('world_id', $this->User->world_id) && $this->Player->saveFild('regdat', $this->data->User->created)) {
$this->Session->setFlash(__('Registrierung erfolgreich', true));
$this->redirect(array('action' => '../pages/uebersicht'));
} else {
$this->Session->setFlash(__('Die Registrierung ist fehlgeschlagen. Bitte versuche es noch einmal.', true));
}
} else {
$this->Session->setFlash(__('Die Registrierung ist fehlgeschlagen. Bitte versuche es noch einmal..', true));
}
}
}