les cuento que solo llevo un tiempo trabajando con cake ... el problema que
tengo es paginar unos resultados que obtengo de una serie de joins, todos
los join los pongo en un arregle junto con las condiciones, en un find

asi ... al finail esta, $persona =
$this->Persona->find('all',$condicionesJoin); de manera que
$condicionesJoin, posee el mismo formato de los parametros que deberian ir
en el find, la busqueda funciona, que es una serie de condicione, el asunto
es que cuando mire los resultados... me dicuenta que necesitaba paginarlos,
y eso es lo que no he podido hacer


if($this->RequestHandler->isPost()) {
$condicionesJoin['joins'] = array();
$condicionesJoin['conditions'] = array();
$condicionesJoin['fields'] = array();
$condicionesJoin['order']=array();
$perfilA = array();
$perfilB = array();
if (!empty($this->data['Busquedas']['perfil'])){
$perfilA['table']= 'perfilpersona';
$perfilA['alias']= 'Perfilpersona';
$perfilA['type']= 'inner';
$perfilA['foreignKey']= false;
$perfilA['conditions']= array('Perfilpersona.persona_id=Persona.id');
array_push($condicionesJoin['joins'],$perfilA);
 $perfilB['table']= 'perfil';
$perfilB['alias']= 'Perfil';
$perfilB['type']= 'inner';
$perfilB['foreignKey']= false;
$perfilB['conditions']= array(
'Perfil.id=Perfilpersona.perfil_id',
'Perfil.id'=>$this->data['Busquedas']['perfil']
);
array_push($condicionesJoin['joins'],$perfilB);
 }
 $areaA = array();
$areaB = array();
if (!empty($this->data['Busquedas']['areaespecializacion'])){
$areaA['table']= 'areaespecializacionpersona';
$areaA['alias']= 'Areaespecializacionpersona';
$areaA['type']= 'inner';
$areaA['foreignKey']= false;
$areaA['conditions']=
array('Areaespecializacionpersona.persona_id=Persona.id');
array_push($condicionesJoin['joins'],$areaA);

 $areaB['table']= 'areaespecializacion';
$areaB['alias']= 'Areaespecializacion';
$areaB['type']= 'inner';
$areaB['foreignKey']= false;
$areaB['conditions']= array(
'Areaespecializacion.id=Areaespecializacionpersona.areaespecializacion_id',
'Areaespecializacion.id'=>$this->data['Busquedas']['areaespecializacion']
);
array_push($condicionesJoin['joins'],$areaB);
}
 $tipomailA = array();
$tipomailB = array();
if (!empty($this->data['Busquedas']['tipomail'])){
$tipomailA['table']= 'personamail';
$tipomailA['alias']= 'Personamail';
$tipomailA['type']= 'inner';
$tipomailA['foreignKey']= false;
$tipomailA['conditions']= array('Personamail.persona_id=Persona.id');
array_push($condicionesJoin['joins'],$tipomailA);

 $tipomailB['table']= 'tipomail';
$tipomailB['alias']= 'Tipomail';
$tipomailB['type']= 'inner';
$tipomailB['foreignKey']= false;
$tipomailB['conditions']= array(
'Tipomail.id=Personamail.tipomail_id',
'Tipomail.id'=>$this->data['Busquedas']['tipomail']
);
array_push($condicionesJoin['joins'],$tipomailB);
}
$tipotelefonoA = array();
$tipotelefonoB = array();
if (!empty($this->data['Busquedas']['tipotelefono'])){

$tipotelefonoA['table']= 'personatelefono';
$tipotelefonoA['alias']= 'Personatelefono';
$tipotelefonoA['type']= 'inner';
$tipotelefonoA['foreignKey']= false;
$tipotelefonoA['conditions']=
array('Personatelefono.persona_id=Persona.id');
array_push($condicionesJoin['joins'],$tipotelefonoA);

$tipotelefonoB['table']= 'tipotelefono';
$tipotelefonoB['alias']= 'Tipotelefono';
$tipotelefonoB['type']= 'inner';
$tipotelefonoB['foreignKey']= false;
$tipotelefonoB['conditions']= array(
'Tipotelefono.id=Personatelefono.tipotelefono_id',
'Tipotelefono.id'=>$this->data['Busquedas']['tipotelefono']
);
array_push($condicionesJoin['joins'],$tipotelefonoB);
}

$cargoA = array();
$cargoB = array();
if (!empty($this->data['Busquedas']['cargolaboral'])){
$cargoA['table']= 'trabajopersona';
$cargoA['alias']= 'Trabajopersona';
$cargoA['type']= 'inner';
$cargoA['foreignKey']= false;
$cargoA['conditions']= array('Trabajopersona.persona_id=Persona.id');
array_push($condicionesJoin['joins'],$cargoA);
 $cargoB['table']= 'cargolaboral';
$cargoB['alias']= 'Cargolaboral';
$cargoB['type']= 'inner';
$cargoB['foreignKey']= false;
$cargoB['conditions']= array(
'Cargolaboral.id=Trabajopersona.cargolaboral_id',
'Cargolaboral.id'=>$this->data['Busquedas']['cargolaboral']
);
array_push($condicionesJoin['joins'],$cargoB);
 }
 $paisA = array();
$paisB = array();
if (!empty($this->data['Busquedas']['pais'])){
$paisA['table']= 'personatelefono';
$paisA['alias']= 'PersonatelefonoP';
$paisA['type']= 'left';
$paisA['foreignKey']= false;
$paisA['conditions']= array('PersonatelefonoP.persona_id=Persona.id');
array_push($condicionesJoin['joins'],$paisA);
 $paisB['table']= 'pais';
$paisB['alias']= 'Pai';
$paisB['type']= 'left';
$paisB['foreignKey']= false;
$paisB['conditions']= array(
'Pai.id=PersonatelefonoP.pais_id',
'Pai.id'=>$this->data['Busquedas']['pais']
);
 array_push($condicionesJoin['joins'],$paisB);
 }

$provinciaA = array();
$provinciaB = array();
if (!empty($this->data['Busquedas']['provincia'])){
$provinciaA['table']= 'personatelefono';
$provinciaA['alias']= 'Personatelefono';
$provinciaA['type']= 'inner';
$provinciaA['foreignKey']= false;
$provinciaA['conditions']= array('Personatelefono.persona_id=Persona.id');
array_push($condicionesJoin['joins'],$provinciaA);
 $provinciaB['table']= 'provincia';
$provinciaB['alias']= 'Provincium';
$provinciaB['type']= 'inner';
$provinciaB['foreignKey']= false;
$provinciaB['conditions']= array(
'Provincium.id=Personatelefono.provincia_id',
'Provincium.id'=>$this->data['Busquedas']['provincia']
);
pr($this->data);
array_push($condicionesJoin['joins'],$provinciaB);
 }

if (!empty($this->data['Busquedas']['estado'])){

array_push($condicionesJoin['conditions'],array('Persona.estado_id'=>$this->data['Busquedas']['estado']));
}
 $this->Persona->unBindModel(array(
'hasAndBelongsToMany'=>array(
'Areaespecializacion',
'Perfil',
'Tipotelefono',
'Tipodireccion',
'Redsocial',
'Carrera',
'Detalleactividad',
'Cargolaboral'
),
'hasMany'=>array(
'Perfilpersona',
'Areaespecializacionpersona',
'Trabajopersona',
'Carrerapersona',
'Personatelefono',
'Personaredsocial',
'Direccion',
'Personadetalleactividad'
),
)
);
array_push($condicionesJoin['fields'],'DISTINCT Persona.id');
array_push($condicionesJoin['fields'],'Persona.nombrepersona');
array_push($condicionesJoin['order'],'Persona.nombrepersona');

desde ya muchas gracias .

-- 
Has recibido este mensaje porque estás suscrito al grupo "CakePHP-es" de Grupos 
de Google.
Para publicar una entrada en este grupo, envía un correo electrónico a 
[email protected].
Para anular tu suscripción a este grupo, envía un correo electrónico a 
[email protected]
Para tener acceso a más opciones, visita el grupo en 
http://groups.google.com/group/cakephp-es?hl=es.

Responder a