Es algo interesante lo que haces pero te recomendaria usar
transacciones. De todas formas lo de la
validación no es muy complicado y como dijo mbavio haz las
validaciones en el modelo.

Nota debes si usas MySQL tus tablas deben ser INNODB o deben usar
algun motor transaccional de MySQL
En tu accion del controlador add aumenta un código similar a este

<?php
#Ingresar datos
if(!empty($this->data))
{
        #Defines cual es el modelo para realizar la trasaccion en este caso
User
        $this->User->begin();
        #Para poder comprobar si la transaccion se cumple
        $save = true;

        #Guardando los datos de User
        if(!$this->User->save($this->data['User'])) {
                $save = false;
                #Para que se pueda revisar de los otros modelos
                $user_id = 1;
                $errorsUser  = $this->User->validationErrors;
        }else{
                $user_id = $this->User->getLastInsertID();
        }

        #Guardando los datos de Sector
        if(!$this->Sector->save($this->data['User'])) {
                $save = false;
                #Para que se pueda revisar de los otros modelos
                $sector_id = 1;
                $errorsSector  = $this->Sector->validationErrors;
        }else{
                $sector_id = $this->Sector->getLastInsertID();
        }

        #Almacenamieto de SectorsUsers
        #Supongo de que debes de hacer esto antes de guardar SectorUser
        $this->data['SectorUser']['user_id'] = $user_id;
        $this->data['SectorUser']['sector_id'] = $sector_id;
        if(!$this->SectorUser->save($this->data['SectorUser'])){
                $save = false;
                #Almacenamiento de errores para desplegar en la vista
                $errorsSectorUsers = $this->SectorUser->validationErrors;
        }


        if($save) {
                #Fin de Transaccion
                $this->User->commit();
                #Direccion a la cual quieres redireccionar (Puedes elegir la 
que tu
quieras)
                $name = Inflector::humanize($this->name);
                $this->Session->setFlash('Se ha ingresado los datos');
                $this->redirect("/$name/");
                exit(0);
        }else{
                $this->User->rollback();
                $this->Session->setFlash('<div class="error-message">Error: 
Corrija
los errores</div>');
                #Se prepara los errores que se presentara
                $this->set('errorsUser', $errorsUser);
                $this->set('errorsSector', $errorsSector);
                $this->set('errorsSectorUsers', $errorsSectorUsers);
        }
}
?>

Los mensajes de error son los mensajes de error del Modelo como te lo
explicaron antes y puedes usar
las variables $errorsUser, $errorsSector y $errorsSectorUsers para
poder presentarlas en tu vista de la manera que quieras.
--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a [email protected]
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~----------~----~----~----~------~----~------~--~---

Responder a