/** * 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); }