当前位置: 首页>>代码示例>>PHP>>正文


PHP AbstractModel::curent_class方法代码示例

本文整理汇总了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));
 }
开发者ID:bolchevian,项目名称:font,代码行数:83,代码来源:AbstractModel.class.php


注:本文中的AbstractModel::curent_class方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。