示例#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[$unit_id, $locale] $key Primary key to use for the query
  * @param ConnectionInterface $con an optional connection object
  *
  * @return ChildUnitI18n|array|mixed the result, formatted by the current formatter
  */
 public function findPk($key, ConnectionInterface $con = null)
 {
     if ($key === null) {
         return null;
     }
     if (null !== ($obj = UnitI18nTableMap::getInstanceFromPool(serialize([null === $key[0] || is_scalar($key[0]) || is_callable([$key[0], '__toString']) ? (string) $key[0] : $key[0], null === $key[1] || is_scalar($key[1]) || is_callable([$key[1], '__toString']) ? (string) $key[1] : $key[1]]))) && !$this->formatter) {
         // the object is already in the instance pool
         return $obj;
     }
     if ($con === null) {
         $con = Propel::getServiceContainer()->getReadConnection(UnitI18nTableMap::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);
     }
 }
示例#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 = UnitI18nTableMap::getPrimaryKeyHashFromRow($row, 0, $dataFetcher->getIndexType());
         if (null !== ($obj = UnitI18nTableMap::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 UnitI18n $obj */
             $obj = new $cls();
             $obj->hydrate($row);
             $results[] = $obj;
             UnitI18nTableMap::addInstanceToPool($obj, $key);
         }
         // if key exists
     }
     return $results;
 }