Exemplo n.º 1
0
 /**
  * Find object by primary key.
  * Propel uses the instance pool to skip the database if the object exists.
  * Go fast if the query is untouched.
  *
  * <code>
  * $obj = $c->findPk(array(12, 34), $con);
  * </code>
  *
  * @param array[$id_object, $id_category] $key Primary key to use for the query
  * @param ConnectionInterface $con an optional connection object
  *
  * @return ChildObjectCategory|array|mixed the result, formatted by the current formatter
  */
 public function findPk($key, ConnectionInterface $con = null)
 {
     if ($key === null) {
         return null;
     }
     if (null !== ($obj = ObjectCategoryTableMap::getInstanceFromPool(serialize(array((string) $key[0], (string) $key[1])))) && !$this->formatter) {
         // the object is already in the instance pool
         return $obj;
     }
     if ($con === null) {
         $con = Propel::getServiceContainer()->getReadConnection(ObjectCategoryTableMap::DATABASE_NAME);
     }
     $this->basePreSelect($con);
     if ($this->formatter || $this->modelAlias || $this->with || $this->select || $this->selectColumns || $this->asColumns || $this->selectModifiers || $this->map || $this->having || $this->joins) {
         return $this->findPkComplex($key, $con);
     } else {
         return $this->findPkSimple($key, $con);
     }
 }
Exemplo n.º 2
0
 /**
  * The returned array will contain objects of the default type or
  * objects that inherit from the default.
  *
  * @param DataFetcherInterface $dataFetcher
  * @return array
  * @throws PropelException Any exceptions caught during processing will be
  *                         rethrown wrapped into a PropelException.
  */
 public static function populateObjects(DataFetcherInterface $dataFetcher)
 {
     $results = array();
     // set the class once to avoid overhead in the loop
     $cls = static::getOMClass(false);
     // populate the object(s)
     while ($row = $dataFetcher->fetch()) {
         $key = ObjectCategoryTableMap::getPrimaryKeyHashFromRow($row, 0, $dataFetcher->getIndexType());
         if (null !== ($obj = ObjectCategoryTableMap::getInstanceFromPool($key))) {
             // We no longer rehydrate the object, since this can cause data loss.
             // See http://www.propelorm.org/ticket/509
             // $obj->hydrate($row, 0, true); // rehydrate
             $results[] = $obj;
         } else {
             /** @var ObjectCategory $obj */
             $obj = new $cls();
             $obj->hydrate($row);
             $results[] = $obj;
             ObjectCategoryTableMap::addInstanceToPool($obj, $key);
         }
         // if key exists
     }
     return $results;
 }