public function testGetModelName() { $c = new ModelCriteria('bookstore', 'Propel\\Tests\\Bookstore\\Book'); $this->assertEquals('Propel\\Tests\\Bookstore\\Book', $c->getModelName(), 'getModelName() returns the name of the class associated to the model class'); $c = new ModelCriteria('bookstore', '\\Propel\\Tests\\Bookstore\\Book'); $this->assertEquals('Propel\\Tests\\Bookstore\\Book', $c->getModelName(), 'getModelName() returns the name of the class associated to the model class'); }
/** * @param ModelCriteria $query * @param \Jarves\Configuration\Condition $condition * @return \PDOStatement * @throws \PDOException */ public function getStm(ModelCriteria $query, Condition $condition = null) { $params = []; $condition2Params = []; $id = hexdec(uniqid()) / mt_rand() + mt_rand(); // check that the columns of the main class are already added (if this is the primary ModelCriteria) if (!$query->hasSelectClause() && !$query->getPrimaryCriteria()) { $query->addSelfSelectColumns(); } $con = RuntimePropel::getServiceContainer()->getReadConnection($query->getDbName()); $query->configureSelectColumns(); $dbMap = RuntimePropel::getServiceContainer()->getDatabaseMap($query->getDbName()); $db = RuntimePropel::getServiceContainer()->getAdapter($query->getDbName()); $model = $query->getModelName(); $tableMap = constant($model . '::TABLE_MAP'); $query->setPrimaryTableName(constant($tableMap . '::TABLE_NAME')); // $query->find($con); if ($condition) { $query->where($id . ' = ' . $id); } $sql = $query->createSelectSql($params); $conditionSql = ''; if ($condition) { $condition2Params = $params; $conditionSql = $this->conditionOperator->standardConditionToSql($condition, $condition2Params, $this->getObjectKey()); } if ($condition && $conditionSql) { $sql = str_replace($id . ' = ' . $id, '(' . $conditionSql . ')', $sql); } /** @var \PDOStatement $stmt */ try { $stmt = $con->prepare($sql); } catch (\PDOException $e) { throw new PropelException('Could not execute query ' . $sql, 0, $e); } $db->bindValues($stmt, $params, $dbMap); if ($condition2Params) { foreach ($condition2Params as $idx => $v) { if (!is_array($v)) { //propel uses arrays as bind values, we with Condition->toSql not. $stmt->bindValue($idx, $v); } } } try { $stmt->execute(); } catch (\PDOException $e) { throw new \PDOException($e->getMessage() . "\nSQL: {$sql}"); } return $stmt; }