Aqui esta la info detallada:
/App/Plugin/Proyectos/Model/Proyecto.php:
<?php
/**
* Modelo que permite operaciones sobre la tabla "proy_proyectos"
* de la base de datos.
*
* @package Plugin.Proyectos
* @subpackage Model
* @author ChopiteW <
Chop...@bieloven.com.ve>
* @todo
* @version 2
*/
class Proyecto extends ProyectosAppModel {
/**
* Nombre del modelo "Proyecto".
* @var String
*/
public $name="Proyecto";
/**
* Tabla de la base de datos a utilizar por el Modelo (proy_proyectos).
* @var String
*/
public $useTable = 'proy_proyectos';
/**
* Array que define relacion "1-1" con el modelo "Proyectos.AspectosInteres".
* @var array
*/
public $hasOne = array(
'AspectosInteres' => array(
'className' => 'Proyectos.AspectosInteres',
'foreignKey' => 'proyecto_id',
'dependent' => true
)
);
/**
* Array que define relacion "N-1" con el modelo "Proyectos.Proyecto".
* @var array
*/
public $belongsTo = array(
'Localidad'=>array(
'className'=>'Regiones.Localidad',
'foreignKey'=>'localidad_id'
),
'TipoProyecto'=>array(
'className'=>'Proyectos.TipoProyecto',
'foreignKey'=>'tipo_proyecto_id'
),
'Cliente'=>array(
'className'=>'Miscelaneas.Cliente',
'foreignKey'=>'cliente_id'
)
);
/**
* Define las condiciones de validacion
* de los campos del modelo.
*
* Reglas y campos:
*
* 1) nombre: Este campo almacena el nombre del pais.
*
* Reglas aplicadas:
*
* a) nombre_unico: Que el nombre sea unico. No deben existir 2 registros
* con el mismo valor en el campo nombre (isUnique).
*
* b) campo_no_vacio: Es obligatorio indicar un valor para proceder al
* al guardado de los datos (notEmpty).
*
* c) tam_minimo: El nombre debe tener al menos 4 caracteres (minLength).
*
* 2) tipo_proyecto_id: Almacena el id del tipo de proyecto asociado.
*
* Reglas aplicadas:
*
* a) campo_no_vacio: Es obligatorio indicar el tipo de proyecto.
*
* 3) pais_id: Indica el id del pais asociado.
*
* Reglas aplicadas:
*
* a) campo_no_vacio: Es obligatorio indicar el pais.
*
* 4) estado_id: Indica el id del estado asociado.
*
* Reglas aplicadas:
*
* a) campo_no_vacio: Es obligatorio indicar el estado.
*
* 5) localidad_id: Almacena el id de la localidad asociada.
*
* Reglas aplicadas:
*
* a) campo_no_vacio: Es obligatorio indicar la localidad.
*
* 6) cliente_id: Almacena el id del cliente asociado.
*
* Reglas aplicadas:
*
* a) campo_no_vacio: Es obligatorio indicar el cliente.
*
* 7) codigo_conjunto: Almacena el codigo del proyecto. Una nomenclatura en
* estandar sismico para nombrar los proyectos.
*
* Reglas aplicadas:
*
* a) nombre_unico: Que el codigo conjunto sea unico. No deben existir 2 registros
* con el mismo valor en este campo (isUnique).
*
* b) campo_no_vacio: Es obligatorio indicar un valor para proceder al
* al guardado de los datos (notEmpty).
*
* 8) lider_proyecto: Almacena el nombre del lider de proyecto.
*
* Reglas aplicadas:
*
* a) campo_no_vacio: Es obligatorio indicar un valor para proceder al
* al guardado de los datos (notEmpty).
*
* 9) fecha_inicio: Almacena la fecha de inicio del proyecto.
*
* Reglas aplicadas:
*
* a) campo_no_vacio: Es obligatorio indicar un valor para proceder al
* al guardado de los datos (notEmpty).
*
* 10) fecha_culminacion: Almacena la fecha de culminacion del proyecto.
*
* Reglas aplicadas:
*
* a) campo_no_vacio: Es obligatorio indicar un valor para proceder al
* al guardado de los datos (notEmpty).
*
* @var array
* @todo
*/
public $validate = array(
'nombre'=>array(
'nombre_unico'=>array(
'rule'=>'isUnique',
'message' => 'Este pais ya fue registrado'
),
'campo_no_vacio'=> array(
'rule'=>'notEmpty',
'message'=>'Debe indicar el nombre del pais'
),
'tam_minimo'=>array(
'rule' => array('minLength', 4),
'message' => 'El nombre debe tener al menos 4 caracteres'
)
),
'tipo_proyecto_id'=>array(
'campo_no_vacio'=>array(
'rule'=>'notEmpty',
'message'=>'Debe indicar el tipo de proyecto'
)
),
'pais_id'=>array(
'campo_no_vacio'=>array(
'rule'=>'notEmpty',
'message'=>'Debe indicar el pais'
)
),
'estado_id'=>array(
'campo_no_vacio'=>array(
'rule'=>'notEmpty',
'message'=>'Debe indicar el estado'
)
),
'localidad_id'=>array(
'campo_no_vacio'=>array(
'rule'=>'notEmpty',
'message'=>'Debe indicar la localidad'
)
),
'cliente_id'=>array(
'campo_no_vacio'=>array(
'rule'=>'notEmpty',
'message'=>'Debe indicar el cliente'
)
),
'codigo_conjunto'=>array(
'nombre_unico'=>array(
'rule'=>'isUnique',
'message' => 'Este codigo ya fue registrado'
),
'campo_no_vacio'=> array(
'rule'=>'notEmpty',
'message'=>'Debe indicar el codigo conjunto del proyecto'
)
),
'lider_proyecto'=>array(
'campo_no_vacio'=>array(
'rule'=>'notEmpty',
'message'=>'Debe indicar el lider de proyecto'
)
),
'fecha_inicio'=>array(
'campo_no_vacio'=>array(
'rule'=>'notEmpty',
'message'=>'Debe indicar la fecha de inicio del proyecto'
)
),
'fecha_culminacion'=>array(
'campo_no_vacio'=>array(
'rule'=>'notEmpty',
'message'=>'Debe indicar la fecha de culminacion del proyecto'
)
)
);
/**
* Callback del Modelo. Pasa el nombre del proyecto a mayusculas justo
* antes de validar los datos para el guardado del registro ($this->data['Proyecto']['nombre]).
*
* @author Wladimir Chopite <
Chop...@bieloven.com.ve>
* @param void
* @return boolean
* @todo
* @version 1
*/
public function beforeValidate() {
$this->data['Proyecto']['nombre'] = strtoupper($this->data['Proyecto']['nombre']);
return true;
}
}
?>
/App/Plugin/Proyectos/Model/AspectosInteres.php:
<?php
/**
* Modelo que permite operaciones sobre la tabla "proy_aspectos_interes"
* de la base de datos. Posee una relacion "1-1" con el modelo "Proyecto".
*
* @package Plugin.Proyectos
* @subpackage Model
* @author ChopiteW <
Chop...@bieloven.com.ve>
* @todo
* @version 1
*/
class AspectosInteres extends ProyectosAppModel {
/**
* Nombre del modelo "AspectosInteres".
* @var String
*/
public $name = "AspectosInteres";
/**
* Tabla de la base de datos a utilizar por el Modelo (proy_aspectos_interes).
* @var String
*/
public $useTable = 'proy_aspectos_interes';
/**
* Array que define relacion "1-1" con el modelo "Proyectos.Proyecto".
* @var array
*/
public $belongsTo = array(
'Proyecto'=>array(
'className'=>'Proyectos.Proyecto',
'foreignKey'=>'proyecto_id'
)
);
/**
* Define las condiciones de validacion
* de los distintos campos del modelo.
*
* Reglas y campos:
*
* 1) proyecto_id: Este campo almacena el id del proyecto asociado.
*
* Reglas aplicadas:
*
* a) campo_no_vacio: Es obligatorio indicar un valor para proceder al
* al guardado de los datos (notEmpty).
*
* @var array
* @todo
*/
public $validate = array(
'proyecto_id'=>array(
'campo_no_vacio'=> array(
'rule'=>'notEmpty',
'message'=>'Debe indicar el nombre del tipo de proyecto'
)
)
);
}
?>
En cuanto a las vistas, en los 2 primeros correos estan. y el debug del $this->request te la paso a continuacion:
object(CakeRequest) {
params => array(
'plugin' => 'proyectos',
'controller' => 'proyectos',
'action' => 'nuevo',
'named' => array(),
'pass' => array()
)
data => array(
'Proyecto' => array(
'tipo_proyecto_id' => '50800565-5c30-489b-8f46-08f8c0a80149',
'pais_id' => '50338a1d-a140-4da0-8642-0eb83cec18a5',
'estado_id' => '50338a27-b794-4ebc-929d-0eb83cec18a5',
'localidad_id' => '50338a32-5780-4d4c-9f29-0eb83cec18a5',
'cliente_id' => '507f0897-75e4-48c2-abc2-08f8c0a80149',
'nombre' => 'Rio Claro',
'codigo_conjunto' => 'RC-11M-3D-3C',
'lider_proyecto' => 'Rene Lopez',
'fecha_inicio' => array(
'month' => '10',
'day' => '22',
'year' => '2012'
),
'fecha_culminacion' => array(
'month' => '10',
'day' => '22',
'year' => '2012'
),
'extension_geografica' => '',
'comentarios' => ''
),
'AspectosInteres' => array(
'salud_publica' => '',
'fenomenos_sociales' => '',
'vialidad' => 'Buena vialidad',
'otros_proyectos_realizados' => '',
'infraestructura_industrial' => '',
'explotacion_suelo' => ''
)
)
query => array()
url => 'proyectos/proyectos/nuevo'
base => ''
webroot => '/'
here => '/proyectos/proyectos/nuevo'
}