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, $pkeyarr= false)
{
$bd = NewADOConnection('mysql');
//$bd->debug = true;
//$bd->charSet = 'we8iso8859p1';
$bd->Connect(DB_HOST, DB_USER, DB_PASS, DB_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.