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
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:
Define los parámetros de configuración de la conexión:
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{
...
}
<?php
namespace models\tests;
/**
* @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.