public function loadAnonymous() { $table = Database::getEntityName('user'); $id = Database::getInstance()->skalar("select us_id from {$table} where us_anonymous = 1"); $user = new User($id); $_SESSION['id'] = $user->id; $_SESSION['sp_id'] = $user->us_sprache; $_SESSION['name'] = 'nicht angemeldet'; $_SESSION['loggedin'] = false; $this->loadRollen($user->id); Site::flushCache(); }
/** * Erstellt einen Query-Builder für dieses Entity und gibt diesen zurück. * Es werden keine Felder hinzugefügt! * * @param bool $addFelder * @return QueryBuilder */ public static function createSelectBuilder($addFelder = false) { // Via late static binding eine Instanz der Klasse erzeugen $classname = get_called_class(); $temp = new $classname(); $entity = Database::getEntityName($temp->definition->name); $builder = Database::select()->table($entity); // Felder if ($addFelder) { $builder->field($entity . '.*'); foreach ($temp->lookupFelder as $feld) { /** @var ModelFieldLookup $feld */ $relationTable = Database::getEntityName($feld->getRelationName()); // TODO: Wenn Type-Safe dann Absturz if ($feld->field != '') { $builder->field("{$relationTable}.{$feld->field} {$feld->name}"); } } foreach ($temp->felder as $feld) { if ($feld instanceof ModelFieldCalc) { $builder->field("({$feld->getFormula()}) as {$feld->name}"); } } } // Joins foreach ($temp->relationen as $relation) { /** @var $relation Relation */ $foreigntable = Database::getEntityName($relation->foreignEntity); if ($relation->alias === '') { $alias = $entity; } else { $alias = $relation->alias; } $additionalCriteria = ''; if ($relation->joinCriteria !== '') { $additionalCriteria = ' and ' . $relation->joinCriteria; } $builder->join($relation->join, "{$foreigntable} {$relation->name}", "{$alias}.{$relation->field} = {$relation->name}.{$relation->foreignField} {$additionalCriteria}"); } return $builder; }
/** * @param BaseEntity $entity * @return boolean */ public function delete($entity) { if (!$entity->canDelete()) { Logging::warning('Datensatz kann nicht gelöscht werden ' . (string) $this); return false; } $entityName = Database::getEntityName($this->definition->name); Database::delete()->from($entityName)->where("{$this->definition->primaryKey} = {$entity->id}")->execute(); return true; }