示例#1
0
 /**
  * Change order.
  *
  * @param string $direction Order direction.
  * @param int $fieldIndex Field index.
  */
 public function changeOrder($direction, $fieldIndex)
 {
     $fieldIndex--;
     $cols = array_keys($colsInfo = $this->dbh->getColumnsInfo($this->tableName));
     $srcField = $cols[$fieldIndex];
     $destFieldIndex = $fieldIndex + ($direction == Grid::DIR_UP ? -2 : 1);
     if ($destFieldIndex <= 0 || $destFieldIndex == sizeof($cols)) {
         return;
     }
     $destColField = $cols[$destFieldIndex];
     $query = 'ALTER TABLE ' . $this->tableName . ' MODIFY ' . $srcField . ' ' . self::getFDAsSQLString(FieldDescription::convertType($colsInfo[$srcField]['type'], $srcField, $colsInfo[$srcField]['length'], $colsInfo[$srcField])) . (!$colsInfo[$srcField]['nullable'] ? ' NOT NULL ' : '') . ' AFTER ' . $destColField;
     $this->dbh->modify($query);
 }