Re: ¿Por qué me aparece este error (Undefined offset)?

2008-01-24 Por tema dandreta

Hola!
Pues he estado comprobandolo y si tengo un problema con las
relaciones, concretamente en una:
1 Proyecto - N Personas
N Personas - N Proyectos

Tengo dos relaciones diferentes entre los mismos modelos (Proyecto y
Persona).
Me explico:
Un proyecto lo pueden realizar varias personas, pero una persona solo
puede realizar un unico proyecto (relacion 1-N).
Por otro lado, antes de realizar un proyecto, se preseleccionan una
lista de personas y en esta preseleccion una misma persona si puede
estar relacionada con varios proyectos (relacion N-N).

Por lo tanto tengo:
Proyecto hasMany Persona-Persona belongsTo
Proyecto
Proyecto hasAndBelongsToMany Persona---Persona hasAndBelongsToMany
Proyecto

Y en el modelo Proyecto lo tengo asi:

var $hasMany = array(
'Persona' = array('className' = 'Persona',
'foreignKey' = 
'proyecto_id'
);

var $hasAndBelongsToMany = array(
'Persona' = array('className' = 'Persona',
'joinTable' = 
'personas_proyectos',
'foreignKey' = 'proyecto_id',
'associationForeignKey' = 
'persona_id'
);

Si quito una de las dos relaciones, el error no aparece.

¿Como puedo solucionarlo?
¿Alguna sugerencia?
Gracias y un saludo



On 23 ene, 22:28, tAO... [EMAIL PROTECTED] wrote:
 Hola
 al parecer tienes un problema en las relaciones de los modelos...
 cheka eso y si sigues con problemas envia el codigo de los modelos...
 saludos
--~--~-~--~~~---~--~~
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 CakePHP-es@googlegroups.com
 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.

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



Re: ¿Por qué me aparece este error (Undefined offset)?

2008-01-24 Por tema Matias Lespiau
Esas dos relaciones no pueden coexistir.

Lo que vos tendrías que hacer es en el caso particular de selección de
personas, utilizar unBindModel y bindModel.

Es decir en el método del controller que armás la preselección, hacés algo
así (no probé el código):

$this-Proyecto-unbindModel( array('hasMany' = 'Persona') );
$this-Proyecto-bindModel( array('hasAndBelongsToMany = array(
   'Persona' = array('className' = 'Persona',
   'joinTable' =
'personas_proyectos',
   'foreignKey' =
'proyecto_id',
   'associationForeignKey' =
'persona_id'
)
)));

Saludos!

-- 
Matias Lespiau
http://www.gignus.com/


2008/1/24 dandreta [EMAIL PROTECTED]:


 Hola!
 Pues he estado comprobandolo y si tengo un problema con las
 relaciones, concretamente en una:
 1 Proyecto - N Personas
 N Personas - N Proyectos

 Tengo dos relaciones diferentes entre los mismos modelos (Proyecto y
 Persona).
 Me explico:
 Un proyecto lo pueden realizar varias personas, pero una persona solo
 puede realizar un unico proyecto (relacion 1-N).
 Por otro lado, antes de realizar un proyecto, se preseleccionan una
 lista de personas y en esta preseleccion una misma persona si puede
 estar relacionada con varios proyectos (relacion N-N).

 Por lo tanto tengo:
 Proyecto hasMany Persona-Persona belongsTo
 Proyecto
 Proyecto hasAndBelongsToMany Persona---Persona hasAndBelongsToMany
 Proyecto

 Y en el modelo Proyecto lo tengo asi:

 var $hasMany = array(
'Persona' = array('className' = 'Persona',

  'foreignKey' = 'proyecto_id'
);

var $hasAndBelongsToMany = array(
'Persona' = array('className' = 'Persona',
'joinTable' =
 'personas_proyectos',
'foreignKey' =
 'proyecto_id',
'associationForeignKey' =
 'persona_id'
);

 Si quito una de las dos relaciones, el error no aparece.

 ¿Como puedo solucionarlo?
 ¿Alguna sugerencia?
 Gracias y un saludo



 On 23 ene, 22:28, tAO... [EMAIL PROTECTED] wrote:
  Hola
  al parecer tienes un problema en las relaciones de los modelos...
  cheka eso y si sigues con problemas envia el codigo de los modelos...
  saludos
 


--~--~-~--~~~---~--~~
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 CakePHP-es@googlegroups.com
 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.

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



¿Por qué me aparece este error (Undefined offset)?

2008-01-23 Por tema dandreta

Hola!!
En mi controlador tengo la funcion index de la siguiente forma:

function index() {
$this-Proyecto-recursive = 2;
$this-set('proyectos', $this-paginate());
}

Y en la vista index se muestran correctamente todos los proyectos con
sus campos y para cada proyecto los datos de otras tablas
relacionadas.
El problema es que aparece este error:

Notice (8): Undefined offset:  0 [CORE/cake/libs/model/datasources/
dbo_source.php, line 882]

La cuestión es que he observado que se debe al atributo recursive, ya
que si lo pongo = 0 no me aparece el error, pero claro no me aparecen
los datos de las tablas relacionadas.
Si lo pongo =1 tambien me aparece el error.

¿Cómo puedo solucionar este error?
¿Alguna sugerencia?
Gracias de antemano y saludos
--~--~-~--~~~---~--~~
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 CakePHP-es@googlegroups.com
 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.

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



Re: ¿Por qué me aparece este error (Undefined offset)?

2008-01-23 Por tema tAO...

Hola
al parecer tienes un problema en las relaciones de los modelos...
cheka eso y si sigues con problemas envia el codigo de los modelos...
saludos
--~--~-~--~~~---~--~~
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 CakePHP-es@googlegroups.com
 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.

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