Antes de nada bienvenido al foro, gracias por participar y plantearnos tus dudas.
En los formularios creados con cakephp, siempre se pasan los datos en la variable, $this->data, como bien comentabas arriba.
Esta variable será un array, que tendrá la siguiente forma
$this->data['Modelo']['campo1']
$this->data['Modelo']['campo2']
$this->data['Modelo']['campo3']
$this->data['Modelo']['campo4']
El modelo que aparezca será el modelo que se le pase como parámetro al crear el formulario.
Existe la posibilidad de cambiar la forma del array, indicando en cada campo del formulario, aparte del nombre del campo, el modelo al que pertenece.
Me explico. En tu caso igual pides en el formulario, el nombre del alumno y las asignaturas en las que se matricula, en ese caso el formulario sería algo así:
$form->createForm('Alumno');
$form->input('nombre'); //'Alumno.nombre'
$form->input('apellidos'); //'Alumno.apellidos'
...
$form->input('Asignatura.nombre_1'); //Asignatura.nombre_1
,,,
Así sólo tendrías que guardar los datos del alumno, $this->Alumno->save($this->data['Alumno'] y hacer un bucle con todas las asignaturas para saber en cuales está matriculado y guardarlas una a una.
De todas formas, existe una función cakephp, debug();, que recibe como parámetro el nombre de una variable y la saca por pantalla formateada, con esto puedes ver lo que se le pasa en la variable $this->data "debug($this->data);"
Un saludo.