Base de connaissance Apps Panel

S’abonner

Interactions avec les bases de données

Vous pouvez interagir de différentes manières avec les bases de données. Cependant le résultat ne sera pas différent.

1. Requête “classique”

Ici, vous utiliserez la fonction DB::getinstance() afin d’initier votre requete SQL.

$database = DB::getinstance();
$database->query('SELECT deviceuid FROM apns_devices');
$data=$database->resultset();

2. Requête “simplifiée”

Afin d’intéragir avec la base, il faut étendre la classe PHP vers \Modules\Elements.

Ce qui donnera :

class Listing extends \Modules\Elements

Pour la suite, vous allez concevoir l’accès à la table de la base de donnée que vous souhaitez modifier/supprimer.

    protected static $table = 'nom_de_votre_table';
    protected static $primary_key = 'nom_de_votre_clé_primaire';
    protected static $fields = array(
    'nom_de_votre_champ_1',
    'nom_de_votre_champ_2',
    'nom_de_votre_champ_3'
    );
    protected static $join = array();
    protected static $groupby;
    protected static $orderby = 'date_create DESC';

Si vous souhaitez renommer un champ afin que cela soit plus compréhensible il suffit de faire comme ceci :

    protected static $fields = array(
    'nom_de_votre_champ_1 as id',
    'nom_de_votre_champ_2 as title',
    'nom_de_votre_champ_3 as description'
    );

La variable $join permet, par exemple, d’ajouter une table qui a une clé étrangère.

protected static $join = array(array("table"=>"data_categories d","on"=>"d.id_categorie = a.id_categorie"));

(Ici la table data_catégorie va recevoir un alias appelé d. id_categorie de la table d égale à id_categorie de la table a. a est la table définit au début.)

 

Je ne vous ai pas encore parler des alias, ils permettent de définir un champ selon sa table, par exemple :

    protected static $fields = array(
    'a.id_element',
    'a.title as title_element',
    'a.description',
    'a.link',
    'a.lat',
    'a.lng',
    'a.id_categorie',
    'a.data1',
    'a.picture',
    'a.active',
    'a.date_create',
    'd.description',
    'd.title');
    protected static $join = array(array("table"=>"data_categories d","on"=>"d.id_categorie = a.id_categorie"));

(Ainsi le programme interprète les champs selon leur table et évite ainsi les problèmes de doublon des champs)

 

On peut ensuite s’en servir dans les différentes fonctions par exemple dans une fonction get :

    public static function get(\Lib\Controller $controller, $params = array()){
    static ::  addFields(self::$fields);
    $souscategories =  parent:: get($controller, $params);
    return $souscategories;
    }
Cet article vous a-t-il été utile ?
Utilisateurs qui ont trouvé cela utile : 0 sur 0
Vous avez d’autres questions ? Envoyer une demande