Foros del Web » Programando para Internet » PHP » Zend »

Zend Db: Error No reference from table X to table Y

Estas en el tema de Zend Db: Error No reference from table X to table Y en el foro de Zend en Foros del Web. Hola a todos, estoy empezando a utilizar ZF para un proyecto y se me presento este error al utilizar Zend_Db, creo que estoy configurando mal ...
  #1 (permalink)  
Antiguo 23/04/2010, 15:58
 
Fecha de Ingreso: junio-2009
Mensajes: 79
Antigüedad: 15 años, 4 meses
Puntos: 0
Zend Db: Error No reference from table X to table Y

Hola a todos, estoy empezando a utilizar ZF para un proyecto y se me presento este error al utilizar Zend_Db, creo que estoy configurando mal los modelos de las tablas pero no consigo ver el error, espero me puedan ayudar.

Tengo una tabla Users donde almaceno la informacion de un usuarios y adicionalmente dos tablas mas (Status y User_Types) relacionadas con Users de uno a muchos (1 status/usertype puede tener varios usuarios), actualmente tengo los modelos de la siguiente manera:

modules/default/models/dbtable/users.php
Código PHP:
class Model_DbTable_Users extends Zend_Db_Table_Abstract
{

    protected 
$_name 'users';
    protected 
$_primary 'id_users';
    protected 
$_referenceMap = array(
        
'UserTypes' => array(
            
'column'            => array('user_types_id_user_types'),
            
'refTableClass' => 'UserTypes',
            
'refColumns'      => array('id_user_types')
        ),
        
'Status' => array(
            
'column'            => array('status_id_status'),
            
'refTableClass' => 'Status',
            
'refColumns'      => array('id_status')
        )
    );


modules/default/models/dbtable/usertypes.php
Código PHP:
class Model_DbTable_UserTypes extends Zend_Db_Table_Abstract
{

    protected 
$_name 'user_types';
    protected 
$_dependentTables = array('Users');


modules/default/models/dbtable/status.php
Código PHP:
class Model_DbTable_Status extends Zend_Db_Table_Abstract
{

    protected 
$_name 'status';
    protected 
$_dependentTables = array('Users');


El problema ocurre cuando trato de conseguir el tipo de usuario de un usuario determinado, por ejemplo:

Código PHP:
$userTable = new Model_DbTable_Users();
$userType $userTable->find(1)->current()->findDependentRowset('Model_DbTable_UserTypes');

var_dump($userType); //Debug
exit; 
Me muestra el error: No reference from table Model_DbTable_UserTypes to table Model_DbTable_Users

Alguien sabe que estoy haciendo mal? Gracias de antemano.
  #2 (permalink)  
Antiguo 23/04/2010, 16:23
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 5 meses
Puntos: 2135
Respuesta: Zend Db: Error No reference from table X to table Y

Creo en refTableClass tienes que usar el nombre completo de la clase

Saludos.
  #3 (permalink)  
Antiguo 23/04/2010, 18:45
 
Fecha de Ingreso: junio-2009
Mensajes: 79
Antigüedad: 15 años, 4 meses
Puntos: 0
Respuesta: Zend Db: Error No reference from table X to table Y

@GatorV

Efectivamente, ese era uno de los errores, aunque ademas me percate de que en el array de referenceMap estaba colocando "column" en vez de "columns", y estaba utilizando la funcion equivocada, era findParentRow() en vez de findDependetRowset.

Muchas gracias!

Etiquetas: reference, table
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 07:40.