Пример #1
0
 public function getValues()
 {
     $map = call_user_func(array($this->peername, 'getPhpNameMap'));
     $c = new Criteria();
     $c->clearSelectColumns();
     foreach (array($this->label, $this->value) as $arr) {
         foreach ($arr['members'] as $member) {
             if (is_array($member)) {
                 foreach ($member as $member) {
                     $c->addSelectColumn(constant($this->peername . '::' . $map[$member]));
                 }
             } else {
                 $c->addSelectColumn(constant($this->peername . '::' . $map[$member]));
             }
         }
     }
     if (isset($this->label['initial']) or isset($this->value['initial'])) {
         $label = isset($this->label['initial']) ? $this->label['initial'] : '';
         $value = isset($this->value['initial']) ? $this->value['initial'] : '';
         $result[] = array('value' => $value, 'label' => $label);
     }
     $rs = AuthorPeer::doSelectStmt($c);
     $rs->setFetchmode(ResultSet::FETCHMODE_ASSOC);
     while ($rs->next()) {
         $row = $rs->getRow();
         foreach (array('label', 'value') as $key) {
             $arr = $this->{$key};
             $params = array($arr['mask']);
             foreach ($arr['members'] as $member) {
                 if (is_array($member)) {
                     foreach ($member as $member) {
                         $field_name = strtolower($map[$member]);
                         // TODO is this always true?
                         $params[] = $row[$field_name];
                     }
                 } else {
                     $field_name = strtolower($map[$member]);
                     // TODO is this always true?
                     $params[] = $row[$field_name];
                 }
             }
             ${$key} = call_user_func_array('sprintf', $params);
             $tmp[$key] = ${$key};
         }
         $result[] = $tmp;
     }
     return $result;
 }
Пример #2
0
 /**
  * Reloads this object from datastore based on primary key and (optionally) resets all associated objects.
  *
  * This will only work if the object has been saved and has a valid primary key set.
  *
  * @param      boolean $deep (optional) Whether to also de-associated any related objects.
  * @param      PropelPDO $con (optional) The PropelPDO connection to use.
  * @return     void
  * @throws     PropelException - if this object is deleted, unsaved or doesn't have pk match in db
  */
 public function reload($deep = false, PropelPDO $con = null)
 {
     if ($this->isDeleted()) {
         throw new PropelException("Cannot reload a deleted object.");
     }
     if ($this->isNew()) {
         throw new PropelException("Cannot reload an unsaved object.");
     }
     if ($con === null) {
         $con = Propel::getConnection(AuthorPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     // We don't need to alter the object instance pool; we're just modifying this instance
     // already in the pool.
     $stmt = AuthorPeer::doSelectStmt($this->buildPkeyCriteria(), $con);
     $row = $stmt->fetch(PDO::FETCH_NUM);
     $stmt->closeCursor();
     if (!$row) {
         throw new PropelException('Cannot find matching row in the database to reload object values.');
     }
     $this->hydrate($row, 0, true);
     // rehydrate
     if ($deep) {
         // also de-associate any related objects?
         $this->collAuthorArticles = null;
         $this->lastAuthorArticleCriteria = null;
     }
     // if (deep)
 }
Пример #3
0
 public function reload($deep = false, PropelPDO $con = null)
 {
     if ($this->isDeleted()) {
         throw new PropelException("Cannot reload a deleted object.");
     }
     if ($this->isNew()) {
         throw new PropelException("Cannot reload an unsaved object.");
     }
     if ($con === null) {
         $con = Propel::getConnection(AuthorPeer::DATABASE_NAME, Propel::CONNECTION_READ);
     }
     $stmt = AuthorPeer::doSelectStmt($this->buildPkeyCriteria(), $con);
     $row = $stmt->fetch(PDO::FETCH_NUM);
     $stmt->closeCursor();
     if (!$row) {
         throw new PropelException('Cannot find matching row in the database to reload object values.');
     }
     $this->hydrate($row, 0, true);
     if ($deep) {
         $this->collAuthorArticles = null;
         $this->lastAuthorArticleCriteria = null;
     }
 }
Пример #4
0
 /**
  * Method to do selects.
  *
  * @param      Criteria $criteria The Criteria object used to build the SELECT statement.
  * @param      PropelPDO $con
  * @return     array Array of selected Objects
  * @throws     PropelException Any exceptions caught during processing will be
  *		 rethrown wrapped into a PropelException.
  */
 public static function doSelect(Criteria $criteria, PropelPDO $con = null)
 {
     return AuthorPeer::populateObjects(AuthorPeer::doSelectStmt($criteria, $con));
 }