Example #1
0
 /**
  * Returns a model by its model id
  *
  * @return Model
  */
 public static function getById($id, $class)
 {
     if (!$class || !is_subclass_of($class, 'Model')) {
         throw new Exception("Model class name must be provided ('{$class}' was given).");
     }
     if ($id instanceof $class) {
         return $id;
     }
     if (!is_numeric($id)) {
         return null;
     }
     if (isset(self::$loaded[$class][$id]) && self::$loaded[$class][$id]->getId() > 0) {
         return self::$loaded[$class][$id];
     }
     if (!($table = Model::getTable($class))) {
         return;
     }
     $db = self::getDB($class);
     $sql = $db->prepare("SELECT * FROM `%s` WHERE id = %d LIMIT 1", $table, $id);
     if ($results = $db->execute($sql)) {
         return Model::getFromSQL($results, $class, false);
     }
 }