Foros del Web » Programando para Internet » PHP »

ADOdb Active Record. Creando las clases.

Estas en el tema de ADOdb Active Record. Creando las clases. en el foro de PHP en Foros del Web. Buenas, soy novato, estoy empezando a utilizar este ORM por primera vez y me esta llevando bastante tiempo definir una relacion 1 a 1 en ...
  #1 (permalink)  
Antiguo 12/03/2012, 06:20
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 9 meses
Puntos: 0
ADOdb Active Record. Creando las clases.

Buenas, soy novato, estoy empezando a utilizar este ORM por primera vez y me esta llevando bastante tiempo definir una relacion 1 a 1 en una tabla a si misma.

La tabla categorias tiene una id principal y una fkidcategoria que indica el id de la categoria padre, osea una relacion 1 a 1 a si mismo.

Necesito ayuda. El codigo lo he distribuido asi, no se si esta bien.

Código PHP:
<?PHP
require_once ( DIR_LIBRERIAS_PRINCIPAL 'adodb5' DS 'adodb-active-record.inc.php' );

class 
claseModelo extends ADOdb_Active_Record{

    public function 
__construct($table false$pkeyarrfalse)
    {
        
$bd NewADOConnection('mysql');
        
//$bd->debug = true;
        //$bd->charSet = 'we8iso8859p1';
        
$bd->Connect(DB_HOSTDB_USERDB_PASSDB_NAME);
        
parent::__construct$table$pkeyarr$bd );
    }
    
}

?>
Código PHP:
class categoriaModelo extends claseModelo{
    
    function 
__construct(){
        
parent::__construct('categorias',array('id'));
        
ADODB_Active_Record::ClassBelongsTo('categoriaModelo''categorias''fkidcategoria''id''categoriaModelo'); 
    }
    

Pero no me funciona. El navegador se me queda atrapado.

¿ Donde o como debo colocar el ClassBelongsTo ?

Si lo pongo tal que asi

Código PHP:
class categoriaModelo extends claseModelo{
    
    function 
__construct(){
        
parent::__construct('categorias',array('id'));
    }
    
}
ADODB_Active_Record::ClassBelongsTo('categoriaModelo''categorias''fkidcategoria''id''categoriaModelo'); 
La clase se me carga asi osea que no parece que haga la relacion, pues si no estoy equivocado, he leido que cuando haces la relacion en el orm, este te carga el dato a null hasta que requieres la clase padre fkidcategoria, que es cuando te lo instancia y te lo referencia. Y como podemos ver el indice fkidcategoria no contiene una instancia de la clase categoriaModelo, si no un string con el valor 2 que es el id de la categoria padre.

Código:
object(categoriaModelo)[41]
  public '_dbat' => int 4
  public '_table' => string 'categorias' (length=10)
  public '_tableat' => string 'categorias' (length=10)
  public '_where' => null
  public '_saved' => boolean true
  public '_lasterr' => boolean false
  public '_original' => 
    array
      0 => string '3' (length=1)
      1 => string '2' (length=1)
      2 => string 'Comida humeda' (length=13)
      3 => string 'comida-humeda' (length=13)
      4 => null
      5 => string '0' (length=1)
      6 => string '1' (length=1)
  public 'foreignName' => string 'categoriamodelo' (length=16)
  public 'lockMode' => string ' for update ' (length=12)
  public 'id' => string '3' (length=1)
  public 'fkidcategoria' => string '2' (length=1)
  public 'nombre' => string 'Comida humeda' (length=13)
  public 'url_relativa' => string 'comida-humeda' (length=13)
  public 'descripcion' => null
  public 'visible' => string '0' (length=1)
  public 'activo' => string '1' (length=1)
Un saludo y gracias.

Última edición por chemajmb; 12/03/2012 a las 07:30
  #2 (permalink)  
Antiguo 12/03/2012, 07:39
Avatar de repara2  
Fecha de Ingreso: septiembre-2010
Ubicación: München
Mensajes: 2.445
Antigüedad: 14 años, 2 meses
Puntos: 331
Respuesta: ADOdb Active Record. Creando las clases.

Mejor consulta la documentación del ORM o un foro especializado: http://phplens.com/lens/adodb/docs-active-record.htm
__________________
Fere libenter homines, id quod volunt, credunt.
  #3 (permalink)  
Antiguo 12/03/2012, 07:54
 
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 150
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: ADOdb Active Record. Creando las clases.

¡¡¡¡¡¡¡Como si no la hubiera consultado!!!!!

Ya la he consultado y llevo ya 2 dias dandole vueltas y buscando informacion con el google, pero no encuentro la solucion.


Pfff

Sigo sin resolver el problema :(

Última edición por chemajmb; 13/03/2012 a las 05:35

Etiquetas: adodb, creando, record, sql, tabla
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 08:52.