$this->request->data['teacher']['user_id'] = $this->User->id;
devrait être
$this->request->data['Teacher']['user_id'] = $this->User->id;
.
"T" majuscule. Les noms de modèles sont toujours en CamelCased.
Cela dit, il n'y a pas besoin de 2 sauvegardes. Vous pouvez simplement utiliser
$this->User->saveAll($this->request->data);
.
Il enregistrera à la fois l'enregistrement de l'utilisateur et l'enregistrement de l'enseignant en ajoutant la valeur de clé étrangère appropriée pour l'enregistrement de l'enseignant (en supposant que vous avez configuré une association appropriée entre le modèle de l'utilisateur et de l'enseignant).