/** * Retrieve a single object by pkey. * * @param int $pk the primary key. * @param PropelPDO $con the connection to use * @return sfBreadNav */ public static function retrieveByPK($pk, PropelPDO $con = null) { if (null !== ($obj = sfBreadNavPeer::getInstanceFromPool((string) $pk))) { return $obj; } if ($con === null) { $con = Propel::getConnection(sfBreadNavPeer::DATABASE_NAME, Propel::CONNECTION_READ); } $criteria = new Criteria(sfBreadNavPeer::DATABASE_NAME); $criteria->add(sfBreadNavPeer::ID, $pk); $v = sfBreadNavPeer::doSelect($criteria, $con); return !empty($v) > 0 ? $v[0] : null; }
/** * Reload all already loaded nodes to sync them with updated db * * @param sfBreadNav $node Propel object for parent node * @param int $delta Value to be shifted by, can be negative * @param PropelPDO $con Connection to use. */ protected static function updateLoadedNode(NodeObject $node, $delta, PropelPDO $con = null) { if (Propel::isInstancePoolingEnabled()) { $keys = array(); foreach (self::$instances as $obj) { $keys[] = $obj->getPrimaryKey(); } if (!empty($keys)) { // We don't need to alter the object instance pool; we're just modifying these ones // already in the pool. $criteria = new Criteria(self::DATABASE_NAME); $criteria->add(sfBreadNavPeer::ID, $keys, Criteria::IN); $stmt = sfBreadNavPeer::doSelectStmt($criteria, $con); while ($row = $stmt->fetch(PDO::FETCH_NUM)) { $key = sfBreadNavPeer::getPrimaryKeyHashFromRow($row, 0); if (null !== ($object = sfBreadNavPeer::getInstanceFromPool($key))) { $object->setLeftValue($row[7]); $object->setRightValue($row[8]); } } $stmt->closeCursor(); } } }