本文整理汇总了PHP中AbstractModel::curent_class方法的典型用法代码示例。如果您正苦于以下问题:PHP AbstractModel::curent_class方法的具体用法?PHP AbstractModel::curent_class怎么用?PHP AbstractModel::curent_class使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类AbstractModel
的用法示例。
在下文中一共展示了AbstractModel::curent_class方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getMany
/**
* Methode qui permet de récupérer les entitées d'une classe métier par JOIN
* @param type $id
* @param type $join_class
* @param type $curent_class
* @return type
* @throws Exception
*/
public static function getMany($task = null, $extra = null)
{
// définitioon de la classe courante
if (get_called_class() == 'AbstractModel') {
if ($task == null) {
Core::dieError('Aucune association présente dans AbstractModel');
}
if (!is_array($task) && is_string($task)) {
$task = array($task);
}
self::$curent_class = array_shift($task);
} else {
self::$curent_class = get_called_class();
}
// re-définition de $task si not array
if (!is_array($task) && $task !== null) {
$task = array($task => null);
} else {
if ($task !== null) {
foreach ($task as $i => $e) {
if (is_int($i)) {
unset($task[$i]);
$task[$e] = null;
}
}
}
}
// préparation des elements
$clausesWhere = array();
$requires = array(self::$curent_class);
if ($task !== null) {
foreach ($task as $key => $value) {
$requires[] = $key;
if ($value != null) {
$clausesWhere[$key] = $value;
}
}
}
// définition des dépendences RequiredJoin issus de getConfig
foreach ($requires as $class) {
$requires = array_merge($requires, self::gerenateJoinRequires($class));
}
$requires = self::gerenateAssosRequires(array_unique($requires));
//retourne une erreur si il n'y a pas de jointure
if (count($requires) == 0) {
Core::dieError('getManyBy Erreur : Association Manquante.');
}
//définition des assotiations Join d'apres les dépendences dans getConfig
$assos = array();
foreach (self::combine($requires) as $e) {
if (($tmp = self::assosClass($e)) !== false) {
$assos[] = $tmp;
}
}
// message d'erreur si le nommbre d''association ne correspond pas au resultat attendus
if (count($assos) < count($requires) - 1) {
Core::dieError('getManyBy Erreur : les correspondances sont erronées ou manquantes.');
}
$build = array();
// création du select
$build[] = self::gerenateSelect(self::$curent_class);
// ajout des Joins
foreach ($assos as $t) {
$build[] = self::assosBuild($t[0], $t[1]);
}
// création des clauses WHERE
$build[] = self::generateWhere($clausesWhere);
// clause ORDER - GROUP BY & LIMIT
$extra = self::castExtra(self::$curent_class, $extra);
if ($extra != null) {
$build[] = self::extraToSql($extra);
}
Core::debug(implode('<br/>', $build));
return Core::$pdo->__query(self::$curent_class, implode(' ', $build));
}