Beispiel #1
0
 public static function populateInstance(Mapper $instance, $mappedEntity)
 {
     $class = $mappedEntity->attributes()->class;
     $instance->setTable($mappedEntity->attributes()->table->__toString());
     $instance->setClass($class->__toString());
     // propertys
     $props = $mappedEntity->property;
     $propertys = array();
     foreach ($props as $property) {
         $name = $property->attributes()->name->__toString();
         $column = $property->attributes()->column ? $property->attributes()->column->__toString() : null;
         $type = $property->attributes()->type ? $property->attributes()->type->__toString() : null;
         $propertys[$name] = new Property($name, $column, $type);
     }
     $instance->setPropertys($propertys);
     // relations
     $rels = $mappedEntity->relation;
     $relations = array();
     foreach ($rels as $relation) {
         $relInstance = new Relation();
         $relInstance->setCardinality($relation->attributes()->cardinality->__toString());
         $relInstance->setEntity($relation->attributes()->entity->__toString());
         $relInstance->setName($relation->attributes()->name->__toString());
         $relInstance->setTable($relation->attributes()->table->__toString());
         if (is_object($relation->attributes()->lazy)) {
             $relInstance->setLazy($relation->attributes()->lazy->__toString());
         }
         $relInstance->setLocalColumn($relation->attributes()->localColumn->__toString());
         $relInstance->setForeignColumn($relation->attributes()->foreignColumn->__toString());
         $relations[$relInstance->getName()] = $relInstance;
     }
     $instance->setRelations($relations);
     // filters
     $fils = $mappedEntity->filter;
     $filters = array();
     foreach ($fils as $filter) {
         $filInstance = new Filter();
         $filInstance->setName($filter->attributes()->name->__toString());
         $filInstance->setItemsPerPage($filter->attributes()->perPage->__toString());
         $filteredColumns = $filter->attributes()->columns->__toString();
         $columList = explode(",", $filteredColumns);
         foreach ($columList as $columnName) {
             $filInstance->addFilteredColumn($columnName);
         }
         $filters[$filInstance->getName()] = $filInstance;
     }
     $instance->setFilters($filters);
 }
Beispiel #2
0
 /**
  * Return the update query for the entity.
  * @param type $entity
  * @param Mapper $mapper
  * @return string
  */
 public static function buildUpdateQuery($entity, Mapper $mapper)
 {
     $fields = "";
     foreach ($mapper->getPropertys() as $property) {
         if ($property->getColumn() != "id") {
             $method = "get" . $property->getName();
             $entity->{$method}();
             if ($property->isNumeric()) {
                 $fieldValue = "`=:" . $property->getColumn() . ", ";
             } else {
                 $fieldValue = "`=:" . $property->getColumn() . ", ";
             }
             $fields .= "`" . $property->getColumn() . $fieldValue;
         }
     }
     $fields = substr_replace($fields, "", -2);
     $query = "UPDATE `" . $mapper->getTable() . "` SET " . $fields . " WHERE id=:id";
     return $query;
 }