本文整理汇总了PHP中Phinx\Db\Table\Column::getName方法的典型用法代码示例。如果您正苦于以下问题:PHP Column::getName方法的具体用法?PHP Column::getName怎么用?PHP Column::getName使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Phinx\Db\Table\Column
的用法示例。
在下文中一共展示了Column::getName方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: getColumnCommentSqlDefinition
/**
* Gets the PostgreSQL Column Comment Defininition for a column object.
*
* @param Column $column Column
* @param string $tableName Table name
* @return string
*/
protected function getColumnCommentSqlDefinition(Column $column, $tableName)
{
// passing 'null' is to remove column comment
$comment = strcasecmp($column->getComment(), 'NULL') !== 0 ? $this->getConnection()->quote($column->getComment()) : 'NULL';
return sprintf('COMMENT ON COLUMN %s.%s IS %s;', $tableName, $column->getName(), $comment);
}
示例2: changeColumn
/**
* {@inheritdoc}
*/
public function changeColumn($tableName, $columnName, Column $newColumn)
{
$this->startCommandTimer();
$this->writeCommand('changeColumn', array($tableName, $columnName, $newColumn->getType()));
$columns = $this->getColumns($tableName);
$changeDefault = $newColumn->getDefault() !== $columns[$columnName]->getDefault() || $newColumn->getType() !== $columns[$columnName]->getType();
if ($columnName !== $newColumn->getName()) {
$this->renameColumn($tableName, $columnName, $newColumn->getName());
}
if ($changeDefault) {
$this->dropDefaultConstraint($tableName, $newColumn->getName());
}
$this->execute(sprintf('ALTER TABLE %s ALTER COLUMN %s %s', $this->quoteTableName($tableName), $this->quoteColumnName($newColumn->getName()), $this->getColumnSqlDefinition($newColumn, false)));
// change column comment if needed
if ($newColumn->getComment()) {
$sql = $this->getColumnCommentSqlDefinition($newColumn, $tableName);
$this->execute($sql);
}
if ($changeDefault) {
$this->changeDefault($tableName, $newColumn);
}
$this->endCommandTimer();
}
示例3: changeColumn
/**
* {@inheritdoc}
*/
public function changeColumn($tableName, $columnName, Column $newColumn)
{
$this->startCommandTimer();
$this->writeCommand('changeColumn', array($tableName, $columnName, $newColumn->getType()));
$after = $newColumn->getAfter() ? ' AFTER ' . $this->quoteColumnName($newColumn->getAfter()) : '';
$this->execute(sprintf('ALTER TABLE %s CHANGE %s %s %s%s', $this->quoteTableName($tableName), $this->quoteColumnName($columnName), $this->quoteColumnName($newColumn->getName()), $this->getColumnSqlDefinition($newColumn), $after));
$this->endCommandTimer();
}
示例4: addColumn
/**
* {@inheritdoc}
*/
public function addColumn(Table $table, Column $column)
{
$this->startCommandTimer();
$this->writeCommand('addColumn', array($table->getName(), $column->getName(), $column->getType()));
$sql = sprintf('ALTER TABLE %s ADD %s %s', $this->quoteTableName($table->getName()), $this->quoteColumnName($column->getName()), $this->getColumnSqlDefinition($column));
$this->execute($sql);
$this->endCommandTimer();
}
示例5: changeColumn
/**
* {@inheritdoc}
*/
public function changeColumn($tableName, $columnName, Column $newColumn)
{
// TODO: DRY this up....
$this->startCommandTimer();
$this->writeCommand('changeColumn', array($tableName, $columnName, $newColumn->getType()));
$tmpTableName = 'tmp_' . $tableName;
$rows = $this->fetchAll('select * from sqlite_master where `type` = \'table\'');
$sql = '';
foreach ($rows as $table) {
if ($table['tbl_name'] == $tableName) {
$sql = $table['sql'];
}
}
$columns = $this->fetchAll(sprintf('pragma table_info(%s)', $this->quoteTableName($tableName)));
$selectColumns = array();
$writeColumns = array();
foreach ($columns as $column) {
$selectName = $column['name'];
$writeName = $selectName == $columnName ? $newColumn->getName() : $selectName;
$selectColumns[] = $this->quoteColumnName($selectName);
$writeColumns[] = $this->quoteColumnName($writeName);
}
if (!in_array($this->quoteColumnName($columnName), $selectColumns)) {
throw new \InvalidArgumentException(sprintf('The specified column doesn\'t exist: ' . $columnName));
}
$this->execute(sprintf('ALTER TABLE %s RENAME TO %s', $tableName, $tmpTableName));
$val = end($columns);
$replacement = $val['name'] === $columnName ? "%s %s" : "%s %s,";
$sql = preg_replace(sprintf("/%s[^,]*[^\\)]/", $this->quoteColumnName($columnName)), sprintf($replacement, $this->quoteColumnName($newColumn->getName()), $this->getColumnSqlDefinition($newColumn)), $sql);
$this->execute($sql);
$sql = sprintf('INSERT INTO %s(%s) SELECT %s FROM %s', $tableName, implode(', ', $writeColumns), implode(', ', $selectColumns), $tmpTableName);
$this->execute($sql);
$this->execute(sprintf('DROP TABLE %s', $this->quoteTableName($tmpTableName)));
$this->endCommandTimer();
}
示例6: getColumnSqlDefinition
/**
* Gets the SQLite Column Definition for a Column object.
*
* @param Column $column Column
* @return string
*/
protected function getColumnSqlDefinition(Column $column)
{
$sqlType = $this->getSqlType($column->getType());
$def = '';
$def .= strtoupper($sqlType['name']);
if ($column->getPrecision() && $column->getScale()) {
$def .= '(' . $column->getPrecision() . ',' . $column->getScale() . ')';
}
$limitable = in_array(strtoupper($sqlType['name']), $this->definitionsWithLimits);
if (($column->getLimit() || isset($sqlType['limit'])) && $limitable) {
$def .= '(' . ($column->getLimit() ? $column->getLimit() : $sqlType['limit']) . ')';
}
if (($values = $column->getValues()) && is_array($values)) {
$def .= " CHECK({$column->getName()} IN ('" . implode("', '", $values) . "'))";
}
$default = $column->getDefault();
$def .= $column->isNull() || is_null($default) ? ' NULL' : ' NOT NULL';
$def .= $this->getDefaultValueDefinition($default);
$def .= $column->isIdentity() ? ' PRIMARY KEY AUTOINCREMENT' : '';
if ($column->getUpdate()) {
$def .= ' ON UPDATE ' . $column->getUpdate();
}
$def .= $this->getCommentDefinition($column);
return $def;
}
示例7: getName
/**
* Gets the column name.
*
* @return string
*/
public function getName()
{
return $this->column->getName();
}