/** * Performs an INSERT on the database, given a Game or Criteria object. * * @param mixed $criteria Criteria or Game object containing data that is used to create the INSERT statement. * @param ConnectionInterface $con the ConnectionInterface connection to use * @return mixed The new primary key. * @throws PropelException Any exceptions caught during processing will be * rethrown wrapped into a PropelException. */ public static function doInsert($criteria, ConnectionInterface $con = null) { if (null === $con) { $con = Propel::getServiceContainer()->getWriteConnection(GameTableMap::DATABASE_NAME); } if ($criteria instanceof Criteria) { $criteria = clone $criteria; // rename for clarity } else { $criteria = $criteria->buildCriteria(); // build Criteria from Game object } if ($criteria->containsKey(GameTableMap::COL_ID) && $criteria->keyContainsValue(GameTableMap::COL_ID)) { throw new PropelException('Cannot insert a value for auto-increment primary key (' . GameTableMap::COL_ID . ')'); } // Set the correct dbName $query = GameQuery::create()->mergeWith($criteria); // use transaction because $criteria could contain info // for more than one table (I guess, conceivably) return $con->transaction(function () use($con, $query) { return $query->doInsert($con); }); }
} $game->save(); $winner->save(); $bets->save(); return $res->withJson(['Message' => 'Game ' . $game->getId() . ' updated'], 200); }); $this->get('/{id}', function ($req, $res, $id) { $game = GameQuery::create()->findPk($id); if ($game) { return $res->write($game->toJSON()); } else { return $res->withJson(["Message" => "Game not found"], 404); } }); $this->get('', function ($req, $res) { $games = GameQuery::create()->joinWithParticipant()->find(); if (!$games) { return $res->withJson(["Message" => "Server Error"], 501); } $bets = BetQuery::create()->joinWithParticipant()->useParticipantQuery()->joinWithGame()->endUse()->findByUserId($_SESSION['id']); $ignoredGameIds = []; foreach ($bets->toArray() as $bet) { array_push($ignoredGameIds, $bet['Participant']['GameId']); } $result['Games'] = []; foreach ($games->toArray() as $i => $game) { if (in_array($game['Id'], $ignoredGameIds)) { continue; } foreach ($game['Participants'] as $j => $participant) { unset($game['Participants'][$j]['Game']);
/** * Builds a Criteria object containing the primary key for this object. * * Unlike buildCriteria() this method includes the primary key values regardless * of whether or not they have been modified. * * @throws LogicException if no primary key is defined * * @return Criteria The Criteria object containing value(s) for primary key(s). */ public function buildPkeyCriteria() { $criteria = ChildGameQuery::create(); $criteria->add(GameTableMap::COL_ID, $this->id); return $criteria; }
/** * Get the associated ChildGame object * * @param ConnectionInterface $con Optional Connection object. * @return ChildGame The associated ChildGame object. * @throws PropelException */ public function getGame(ConnectionInterface $con = null) { if ($this->aGame === null && $this->game_id !== null) { $this->aGame = ChildGameQuery::create()->findPk($this->game_id, $con); /* The following can be used additionally to guarantee the related object contains a reference to this object. This level of coupling may, however, be undesirable since it could result in an only partially populated collection in the referenced object. $this->aGame->addParticipants($this); */ } return $this->aGame; }
/** * Returns a new ChildGameQuery object. * * @param string $modelAlias The alias of a model in the query * @param Criteria $criteria Optional Criteria to build the query from * * @return ChildGameQuery */ public static function create($modelAlias = null, Criteria $criteria = null) { if ($criteria instanceof ChildGameQuery) { return $criteria; } $query = new ChildGameQuery(); if (null !== $modelAlias) { $query->setModelAlias($modelAlias); } if ($criteria instanceof Criteria) { $query->mergeWith($criteria); } return $query; }