Esempio n. 1
0
 /**
  * @covers QueryBuilder::buildUpdateQuery
  * @todo   Implement testBuildUpdateQuery().
  */
 public function testBuildUpdateQuery()
 {
     $weapon = new Weapon(2, "boomerang");
     $expected = "UPDATE `weapon` SET `name`=:name WHERE id=:id";
     $buildedQuery = $this->object->getUpdateQuery($weapon, $this->weaponMapper);
     $this->assertEquals($expected, $buildedQuery);
 }
Esempio n. 2
0
 function doInsertRelation($entity, $relation)
 {
     $statement = QueryBuilder::getInsertRelation($entity, $relation);
     $stmt = $this->getConnection()->prepare($statement);
     $getid = "getId";
     $method = "get" . $relation->getName();
     foreach ($entity->{$method}() as $rel) {
         $values = array();
         $values[":" . $relation->getLocalColumn()] = $entity->{$getid}();
         $values[":" . $relation->getForeignColumn()] = $rel->{$getid}();
         $stmt->execute($values);
     }
 }
Esempio n. 3
0
 /**
  * Find by table relation.
  * @param type $entity
  * @param string $relationName
  * @param string $orderColumn
  * @param string $orderType
  * @return Collection
  */
 public function findRelation($entity, $relationName, $orderColumn = null, $orderType = null)
 {
     $this->load();
     $mapper = MapperBuilder::buildFromClassName($this->mapping, get_class($entity));
     $relation = $mapper->getRelation($relationName);
     $relationMapper = MapperBuilder::buildFromName($this->mapping, $relation->getEntity());
     $selectQuery = "SELECT tmain.* FROM `" . $relationMapper->getTable() . "` tmain ";
     $joinQuery = QueryBuilder::buildJoinRelationQuery($relation, "tmain", "j1");
     $whereQuery = "WHERE j1." . $relation->getLocalColumn() . " = '" . $entity->getId() . "'";
     $orderQuery = "";
     if (!is_null($orderColumn)) {
         $orderQuery .= "ORDER BY {$orderColumn} ";
         if (!is_null($orderType)) {
             $orderQuery .= "{$orderType}";
         } else {
             $orderQuery .= "ASC";
         }
     }
     $query = $selectQuery . $joinQuery . $whereQuery . $orderQuery;
     $queryResult = $this->getDataSource()->query($query);
     if ($queryResult) {
         $collection = new Collection($relationMapper->getClass(), $queryResult, $relationMapper);
     } else {
         $collection = new Collection($relationMapper->getClass(), array(), $relationMapper);
     }
     return $collection;
 }