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; }
/** * 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) }
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; } }
/** * 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)); }