Base de datos

La clase DAO es responsable de las operaciones de carga y persistencia de los modelos :

Conexión a la base de datos

Compruebe que los parámetros de conexión a la base de datos se han introducido correctamente en el archivo de configuración:

Ubiquity config -f=database
../_images/db-config.png

Conexión transparente

Desde Ubiquity 2.3.0, La conexión a la base de datos se realiza automáticamente la primera vez que se solicita:

use Ubiquity\orm\DAO;

$firstUser=DAO::getById(User::class,1);//Automatically start the database

Este es el caso de todos los métodos de la clase DAO utilizados para realizar operaciones CRUD.

Conexión explícita

En algunos casos, sin embargo, puede ser útil establecer una conexión explícita con la base de datos, especialmente para comprobar la conexión.

use Ubiquity\orm\DAO;
use Ubiquity\controllers\Startup;
...
try{
    $config=\Ubiquity\controllers\Startup::getConfig();
    DAO::startDatabase($config);
    $users=DAO::getAll(User::class,'');
}catch(Exception $e){
    echo $e->getMessage();
}

Conexiones múltiples

Añadir una nueva conexión

Ubiquity permite gestionar varias conexiones a bases de datos.

Con Webtools

En la parte Models, seleccione el botón Add new connection:

../_images/add-new-co-btn.png

Define los parámetros de configuración de la conexión:

../_images/new-co.png

Generar modelos para la nueva conexión:
Los modelos generados incluyen la anotación @database o el atributo Database mencionando su enlace a la conexión.

<?php
namespace models\tests;
use Ubiquity\attributes\items\Database;
use Ubiquity\attributes\items\Table;

#[Database('tests')]
#[Table('groupe')]
class Groupe{
    ...
}

Los modelos se generan en una subcarpeta de models.

Con varias conexiones, no olvide añadir la siguiente línea al archivo services.php:

\Ubiquity\orm\DAO::start();

El método start realiza la correspondencia entre cada modelo y su conexión asociada.