$this->request->data['teacher']['user_id'] = $this->User->id;
skal være
$this->request->data['Teacher']['user_id'] = $this->User->id;
.
Stort "T". Modelnavne er altid CamelCased.
Når det er sagt, er der ikke behov for 2 redninger. Du kan bare bruge
$this->User->saveAll($this->request->data);
.
Den gemmer både brugerposten og lærerposten og tilføjer den korrekte fremmednøgleværdi til lærerposten (forudsat at du har opsat den korrekte forbindelse mellem bruger- og lærermodellen).