Chaque collector peut appeler la méthode get ou getOne qui permet de récupérer des données avec ou sans conditions.
function get($primary_key_value = '', $order = '', $limit = '', $offset = '', $tables = '', $join = '') { }
L'exemple suivant permet de récupérer les valeurs du collector "example" si le champ 'is_valid' est égal à 1, par ordre croissant du champ 'n_order', avec 2 résultats maximum qui commencent par 0.
$conditions = array('is_valid' => 1);
$rows = $this->collector['example']->get($conditions, 'n_order', '2', '0');
Cette méthode retourne un tableau contenant les valeurs.
Array
(
[0] = Array
(
[id_example] = 1
[lib] = Item 1
[created_at] = 2019-05-03 14:33:10
[n_order] = 1
[is_valid] = 1
[ex_type] = EX1
)
[1] = Array
(
[id_example] = 3
[lib] = Item 3
[created_at] = 2019-05-03 14:33:21
[n_order] = 3
[is_valid] = 1
[ex_type] = EX2
)
)
La méthode getOne fonctionne de façon identique, à la seule différence que le résultat ne retourne qu'un seul enregistrement.
$rows = $this->collector['example']->getOne();
Il est également possible d'utiliser la méthode aget, qui a le même retour de fonction que la méthode get. Ce sont les paramètres qui s'utilisent différemment, à savoir que les paramètres seront sous forme d'un seul tableau.
function aget($param) { }
Le tableau étant défini comme suit :
$mixed = (isset($param['conditions'])) ? $param['conditions'] : '';
$order = (isset($param['order'])) ? $param['order'] : '';
$limit = (isset($param['limit'])) ? $param['limit'] : '';
$offset = (isset($param['offset'])) ? $param['offset'] : '';
$tables = (isset($param['tables'])) ? $param['tables'] : '';
$join = (isset($param['join'])) ? $param['join'] : '';
$search = (isset($param['search'])) ? $param['search'] : '';
$id_loc = (isset($param['id_loc'])) ? $param['id_loc'] : '';
$id_loc_master= (isset($param['id_loc_master'])) ? $param['id_loc_master'] : '';
Il arrive de vouloir récupérer des données sous la forme d'un tableau associatif Identifiant => Libellé
C'est par exemple pratique dans le cas de liste de valeurs exploitées dans des select.
$rows = $this->collector['example']->get(array('is_valid' => 1));
Array
(
[0] = Array
(
[id_example] = 1
[lib] = Item 1
[created_at] = 2019-05-03 14:33:10
[n_order] = 1
[is_valid] = 1
[ex_type] = EX1
)
[1] = Array
(
[id_example] = 3
[lib] = Item 3
[created_at] = 2019-05-03 14:33:21
[n_order] = 3
[is_valid] = 1
[ex_type] = EX2
)
)
La méthode getKv (pour getKeyValue) retourne en clé l'identifiant de la ligne et en valeur la colonne qui sert de libellé :
$rows = $this->collector['example']->getKv(array('is_valid' => 1));
Array
(
[1] = Item 1
[3] = Item 3
)
Le comportement par défaut est de récupérer la colonne "lib".
Cependant, certaines tables n'utilisent pas ce nom de colonne pour représenter le libellé d'une donnée.
Il est alors possible de définir dans la classe représentant le collector le champ à utiliser :
protected $_libField = 'AUTRE CHAMP';
Il existe également la méthode getKandMore qui va avoir le même fonctionnement que getKv, mais avec la possibilité d'ajouter des valeurs supplémentaires, comme dans l'exemple ci-dessous :
function getKandMore($fields=array(),$conditions = array(), $order = '', $limit = '') { }
$rows = $this->collector['example']->getKandMore(array('lib','created_at'), array('is_valid'=>1));
Array
(
[1] = Item 1 2019-05-03 14:33:10
[3] = Item 3 2019-05-03 14:33:21
)
Chaque collector peut appeler la méthode set qui permet d'insérer ou de mettre à jour des données en base.
function set($primary_key_value = '' , $array_fields = '') { }
L'exemple suivant permet d'insérer les valeurs contenues dans la variable $array_fields dans la table "example".
$array_fields = array('lib' => 'mon exemple numéro', 'champ2' => 'valeur2');
$result = $this->collector['example']->set('', $array_fields);
Cette méthode retourne l'id créé (ou mis à jour), ou FALSE si cela n'a pas fonctionné.
Afin de supprimer une ou plusieurs ligne(s) dans une table souhaitée, il est possible d'utiliser la méthode Del.
public function Del($primary_key_value = '') {}
Si le collector i18n existe (utilisé pour l'aspect multilangage), les données traduites de l'élément supprimé le seront également.
$result = $this->collector['example']->del(115);
// OU
$result = $this->collector['example']->del(array(115, 116, 117));
TRUE ou FALSE selon la réussite des opérations.