コード例 #1
0
ファイル: Parser.php プロジェクト: jackbravo/doctrine
 /**
  * DeleteClause ::= "DELETE" ["FROM"] AbstractSchemaName [["AS"] AliasIdentificationVariable]
  */
 public function _DeleteClause()
 {
     $this->match(Lexer::T_DELETE);
     if ($this->_lexer->isNextToken(Lexer::T_FROM)) {
         $this->match(Lexer::T_FROM);
     }
     $deleteClause = new AST\DeleteClause($this->_AbstractSchemaName());
     if ($this->_lexer->isNextToken(Lexer::T_AS)) {
         $this->match(Lexer::T_AS);
     }
     if ($this->_lexer->isNextToken(Lexer::T_IDENTIFIER)) {
         $this->match(Lexer::T_IDENTIFIER);
         $deleteClause->setAliasIdentificationVariable($this->_lexer->token['value']);
     } else {
         $deleteClause->setAliasIdentificationVariable($deleteClause->getAbstractSchemaName());
     }
     $classMetadata = $this->_em->getClassMetadata($deleteClause->getAbstractSchemaName());
     $queryComponent = array('metadata' => $classMetadata);
     $this->_queryComponents[$deleteClause->getAliasIdentificationVariable()] = $queryComponent;
     return $deleteClause;
 }
コード例 #2
0
ファイル: SqlWalker.php プロジェクト: jackbravo/doctrine
 /**
  * Walks down a DeleteClause AST node, thereby generating the appropriate SQL.
  *
  * @param DeleteClause
  * @return string The SQL.
  */
 public function walkDeleteClause(AST\DeleteClause $deleteClause)
 {
     $sql = 'DELETE FROM ';
     $class = $this->_em->getClassMetadata($deleteClause->getAbstractSchemaName());
     $sql .= $class->getTableName();
     if ($this->_useSqlTableAliases) {
         $sql .= ' ' . $this->getSqlTableAlias($class->getTableName());
     }
     $this->_currentRootAlias = $deleteClause->getAliasIdentificationVariable();
     return $sql;
 }