$this->request->data['teacher']['user_id'] = $this->User->id;
bör vara
$this->request->data['Teacher']['user_id'] = $this->User->id;
.
Stort "T". Modellnamn är alltid CamelCased.
Som sagt, det behövs inte 2 räddningar. Du kan bara använda
$this->User->saveAll($this->request->data);
.
Den sparar både användarposten och lärarposten och lägger till rätt utländsk nyckelvärde för lärarposten (förutsatt att du har ställt in korrekt koppling mellan användar- och lärarmodellen).