Gestion dans 'parentRepo' des getters dynamiques avec clé primaire composée
This commit is contained in:
parent
d514c290df
commit
75d9ec964d
|
@ -61,8 +61,9 @@
|
||||||
/* [2] Gestion du getter dynamique des Repos
|
/* [2] Gestion du getter dynamique des Repos
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
// var_dump( \manager\repo\user::getById(1) );
|
// var_dump( \manager\repo\user::getById(1) );
|
||||||
// // var_dump( \manager\repo\user::getByLogin('xdrm') );
|
// var_dump( \manager\repo\user::getByLogin('xdrm') );
|
||||||
// // var_dump( \manager\repo\subject::getById(1) );
|
// var_dump( \manager\repo\subject::getById(69) );
|
||||||
|
// var_dump( \manager\repo\relation::getById(638, 640, 30) );
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -84,5 +85,4 @@
|
||||||
//
|
//
|
||||||
// }
|
// }
|
||||||
|
|
||||||
|
|
||||||
?>
|
?>
|
||||||
|
|
|
@ -18,6 +18,20 @@
|
||||||
"link"
|
"link"
|
||||||
],
|
],
|
||||||
|
|
||||||
|
"relation": [
|
||||||
|
"getAll",
|
||||||
|
"getById",
|
||||||
|
"create",
|
||||||
|
"remove"
|
||||||
|
],
|
||||||
|
|
||||||
|
"category": [
|
||||||
|
"getAll",
|
||||||
|
"getByIntitule",
|
||||||
|
"create",
|
||||||
|
"remove"
|
||||||
|
],
|
||||||
|
|
||||||
"Personnes": [
|
"Personnes": [
|
||||||
"getById"
|
"getById"
|
||||||
],
|
],
|
||||||
|
|
|
@ -45,6 +45,7 @@
|
||||||
array_push($table_columns, $column['Field']);
|
array_push($table_columns, $column['Field']);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* [3] On vérifie que la valeur après 'get' est dans $table_columns
|
/* [3] On vérifie que la valeur après 'get' est dans $table_columns
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$columnName = strtolower($matches[1]);
|
$columnName = strtolower($matches[1]);
|
||||||
|
@ -56,15 +57,25 @@
|
||||||
// Si ni 'getAll' ni 'getSomething' -> erreur
|
// Si ni 'getAll' ni 'getSomething' -> erreur
|
||||||
if( !$getById && !$getAll && !$getSomething ) return false;
|
if( !$getById && !$getAll && !$getSomething ) return false;
|
||||||
|
|
||||||
|
|
||||||
/* [4] On rédige la requête
|
/* [4] On rédige la requête
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
$getRequestString = 'SELECT * FROM '.static::table_name();
|
$getRequestString = 'SELECT * FROM '.static::table_name();
|
||||||
|
|
||||||
// Si c'est 'getById', on ajoute une condition (clé primaire)
|
// Si c'est 'getById', on ajoute une condition (clé primaire)
|
||||||
if( $getById ){
|
if( $getById ){
|
||||||
$getRequestString .= ' WHERE '.$table_columns['_PRIMARY_'][0].' = :value';
|
|
||||||
|
|
||||||
// TODO: Gestion d'une clé primaire composée (plusieurs arguments)
|
// S'il manque un paramètre, on retourne une erreur
|
||||||
|
if( count($args) < count($table_columns['_PRIMARY_']) )
|
||||||
|
return false;
|
||||||
|
|
||||||
|
// Pour chaque clé primaire (si elle est composée)
|
||||||
|
foreach($table_columns['_PRIMARY_'] as $i=>$primary_column)
|
||||||
|
// Première ligne
|
||||||
|
if( $i == 0 ) $getRequestString .= ' WHERE '.$table_columns['_PRIMARY_'][$i].' = :primary'.$i;
|
||||||
|
// Lignes suivantes
|
||||||
|
else $getRequestString .= ' AND '.$table_columns['_PRIMARY_'][$i].' = :primary'.$i;
|
||||||
|
|
||||||
|
|
||||||
// Si c'est 'getSomething', on ajoute une condition
|
// Si c'est 'getSomething', on ajoute une condition
|
||||||
}else if( $getSomething )
|
}else if( $getSomething )
|
||||||
|
@ -75,9 +86,21 @@
|
||||||
// On prépare la requête
|
// On prépare la requête
|
||||||
$getRequest = Database::getPDO()->prepare($getRequestString);
|
$getRequest = Database::getPDO()->prepare($getRequestString);
|
||||||
|
|
||||||
|
|
||||||
/* [5] On exécute la requête
|
/* [5] On exécute la requête
|
||||||
=========================================================*/
|
=========================================================*/
|
||||||
|
// Si 'getById', on compose la clé primaire
|
||||||
|
if( $getById ){
|
||||||
|
|
||||||
|
$pdo_vars = array();
|
||||||
|
|
||||||
|
foreach($table_columns['_PRIMARY_'] as $i=>$primary_column)
|
||||||
|
$pdo_vars[':primary'.$i] = $args[$i];
|
||||||
|
|
||||||
|
$getRequest->execute( $pdo_vars );
|
||||||
|
|
||||||
// Si 'getSomething', on ajoute le champ
|
// Si 'getSomething', on ajoute le champ
|
||||||
|
}else
|
||||||
$getRequest->execute(array(
|
$getRequest->execute(array(
|
||||||
':value' => ($getSomething||$getById) ? $args[0] : null
|
':value' => ($getSomething||$getById) ? $args[0] : null
|
||||||
));
|
));
|
||||||
|
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace manager\repo;
|
||||||
|
use \manager\Database;
|
||||||
|
use \manager\sessionManager;
|
||||||
|
|
||||||
|
class relation extends parentRepo{
|
||||||
|
|
||||||
|
protected static function table_name(){ static $table_name = 'relations'; return $table_name; }
|
||||||
|
|
||||||
|
|
||||||
|
public static function create(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static function remove(){
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
?>
|
Loading…
Reference in New Issue