Ejemplo n.º 1
0
 /**
  * Adds a table to the statement
  * @param zibo\library\database\manipulation\expression\TableExpression $table
  * @return null;
  */
 public function addTable(TableExpression $table)
 {
     $alias = $table->getAlias();
     if ($alias) {
         $this->tables[$alias] = $table;
     } else {
         $this->tables[$table->getName()] = $table;
     }
 }
 public function testConstructWithAlias()
 {
     $table = new TableExpression('table', 'alias');
     $this->assertEquals('table', $table->getName());
     $this->assertEquals('alias', $table->getAlias());
 }
 /**
  * Create the SQL of the given table for a FROM expression
  * @param zibo\library\database\manipulation\expression\TableExpression $table
  * @return string SQL representation of the table
  */
 protected function parseTableExpressionForFrom(TableExpression $table)
 {
     $tableName = $this->connection->quoteIdentifier($table->getName());
     $tableAlias = $table->getAlias();
     if ($tableAlias != null) {
         $tableName .= ' AS ' . $this->connection->quoteIdentifier($tableAlias);
     }
     return $tableName;
 }
Ejemplo n.º 4
0
 /**
  * Create a condition to localize a model
  * @param zibo\library\database\manipulation\expression\TableExpression $table Table expression of the table with the shared data
  * @param zibo\library\database\manipulation\expression\TableExpression $localizedTable Table expression of the table with the localized data
  * @return zibo\library\database\manipulation\condition\NestedCondition Condition to localize the provided table
  */
 private function createLocalizeCondition(TableExpression $table, TableExpression $localizedTable)
 {
     $expressionPrimaryKey = new FieldExpression(ModelTable::PRIMARY_KEY, $table, $table->getAlias() . self::ALIAS_SEPARATOR . ModelTable::PRIMARY_KEY);
     $expressionData = new FieldExpression(LocalizedModel::FIELD_DATA, $localizedTable, $localizedTable->getAlias() . self::ALIAS_SEPARATOR . LocalizedModel::FIELD_DATA);
     $expressionLocaleField = new FieldExpression(LocalizedModel::FIELD_LOCALE, $localizedTable, $localizedTable->getAlias() . self::ALIAS_SEPARATOR . LocalizedModel::FIELD_LOCALE);
     $expressionLocale = new ScalarExpression($this->locale);
     $dataCondition = new SimpleCondition($expressionPrimaryKey, $expressionData, Condition::OPERATOR_EQUALS);
     $localeCondition = new SimpleCondition($expressionLocaleField, $expressionLocale, Condition::OPERATOR_EQUALS);
     $localizeCondition = new NestedCondition();
     $localizeCondition->addCondition($dataCondition);
     $localizeCondition->addCondition($localeCondition);
     return $localizeCondition;
 }