$this->request->data['teacher']['user_id'] = $this->User->id;
sollte
sein
$this->request->data['Teacher']['user_id'] = $this->User->id;
.
Großbuchstabe „T“. Modellnamen sind immer CamelCased.
Das heißt, es sind keine 2 Speichervorgänge erforderlich. Sie können einfach
verwenden
$this->User->saveAll($this->request->data);
.
Es speichert sowohl den Benutzerdatensatz als auch den Lehrerdatensatz und fügt den richtigen Fremdschlüsselwert für den Lehrerdatensatz hinzu (vorausgesetzt, Sie haben die richtige Zuordnung zwischen Benutzer- und Lehrermodell eingerichtet).