0 follower

Abstract Class Yiisoft\Db\Schema\Column\AbstractColumn

InheritanceYiisoft\Db\Schema\Column\AbstractColumn
ImplementsYiisoft\Db\Schema\Column\ColumnInterface
SubclassesYiisoft\Db\Schema\Column\AbstractArrayColumn, Yiisoft\Db\Schema\Column\AbstractJsonColumn, Yiisoft\Db\Schema\Column\AbstractStructuredColumn, Yiisoft\Db\Schema\Column\ArrayColumn, Yiisoft\Db\Schema\Column\ArrayLazyColumn, Yiisoft\Db\Schema\Column\BigIntColumn, Yiisoft\Db\Schema\Column\BinaryColumn, Yiisoft\Db\Schema\Column\BitColumn, Yiisoft\Db\Schema\Column\BooleanColumn, Yiisoft\Db\Schema\Column\DateTimeColumn, Yiisoft\Db\Schema\Column\DoubleColumn, Yiisoft\Db\Schema\Column\EnumColumn, Yiisoft\Db\Schema\Column\IntegerColumn, Yiisoft\Db\Schema\Column\JsonColumn, Yiisoft\Db\Schema\Column\JsonLazyColumn, Yiisoft\Db\Schema\Column\StringColumn, Yiisoft\Db\Schema\Column\StructuredColumn, Yiisoft\Db\Schema\Column\StructuredLazyColumn

Represents the metadata of a column in a database table.

It provides information about the column's type, size, scale, and other details.

The Column class is used to store and retrieve metadata about a column in a database table.

It's typically used in conjunction with the TableSchema class, which represents the metadata of a database table as a whole.

Here is an example of how to use the Column class:

use Yiisoft\Db\Schema\IntegerColumn;

$column = (new IntegerColumn())
    ->notNull()
    ->dbType('int')
    ->size(11)
    ->defaultValue(0)
    ->autoIncrement()
    ->primaryKey();

Public Methods

Hide inherited methods

Method Description Defined By
__construct() Yiisoft\Db\Schema\Column\AbstractColumn
autoIncrement() Yiisoft\Db\Schema\Column\AbstractColumn
check() Yiisoft\Db\Schema\Column\AbstractColumn
comment() Yiisoft\Db\Schema\Column\AbstractColumn
computed() Yiisoft\Db\Schema\Column\AbstractColumn
dbType() Yiisoft\Db\Schema\Column\AbstractColumn
dbTypecast() Convert a value from its PHP representation to a database-specific representation. Yiisoft\Db\Schema\Column\ColumnInterface
defaultValue() Yiisoft\Db\Schema\Column\AbstractColumn
extra() Yiisoft\Db\Schema\Column\AbstractColumn
getCheck() Yiisoft\Db\Schema\Column\AbstractColumn
getComment() Yiisoft\Db\Schema\Column\AbstractColumn
getDbType() Yiisoft\Db\Schema\Column\AbstractColumn
getDefaultValue() Yiisoft\Db\Schema\Column\AbstractColumn
getExtra() Yiisoft\Db\Schema\Column\AbstractColumn
getName() Yiisoft\Db\Schema\Column\AbstractColumn
getReference() Yiisoft\Db\Schema\Column\AbstractColumn
getScale() Yiisoft\Db\Schema\Column\AbstractColumn
getSize() Yiisoft\Db\Schema\Column\AbstractColumn
getType() Yiisoft\Db\Schema\Column\AbstractColumn
hasDefaultValue() Yiisoft\Db\Schema\Column\AbstractColumn
isAutoIncrement() Yiisoft\Db\Schema\Column\AbstractColumn
isComputed() Yiisoft\Db\Schema\Column\AbstractColumn
isNotNull() Yiisoft\Db\Schema\Column\AbstractColumn
isPrimaryKey() Yiisoft\Db\Schema\Column\AbstractColumn
isUnique() Yiisoft\Db\Schema\Column\AbstractColumn
isUnsigned() Yiisoft\Db\Schema\Column\AbstractColumn
notNull() Yiisoft\Db\Schema\Column\AbstractColumn
null() Yiisoft\Db\Schema\Column\AbstractColumn
phpTypecast() Converts the input value after retrieval from the database. Yiisoft\Db\Schema\Column\ColumnInterface
primaryKey() Yiisoft\Db\Schema\Column\AbstractColumn
reference() Yiisoft\Db\Schema\Column\AbstractColumn
scale() Yiisoft\Db\Schema\Column\AbstractColumn
size() Yiisoft\Db\Schema\Column\AbstractColumn
type() Yiisoft\Db\Schema\Column\AbstractColumn
unique() Yiisoft\Db\Schema\Column\AbstractColumn
unsigned() Yiisoft\Db\Schema\Column\AbstractColumn
withName() Yiisoft\Db\Schema\Column\AbstractColumn

Constants

Hide inherited constants

Constant Value Description Defined By
DEFAULT_TYPE \Yiisoft\Db\Constant\ColumnType::STRING Yiisoft\Db\Schema\Column\AbstractColumn

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( string|null $type null, boolean $autoIncrement false, string|null $check null, string|null $comment null, boolean $computed false, string|null $dbType null, string|null $extra null, boolean $primaryKey false, string|null $name null, boolean|null $notNull null, Yiisoft\Db\Constraint\ForeignKey|null $reference null, integer|null $scale null, integer|null $size null, boolean $unique false, boolean $unsigned false, mixed $args )
$type string|null

The column's abstract type.

$autoIncrement boolean

Whether the column is auto-incremental.

$check string|null

The check constraint for the column.

$comment string|null

The column's comment.

$computed boolean

Whether the column is a computed column.

$dbType string|null

The column's database type.

$extra string|null

Any extra information that needs to be appended to the column's definition.

$primaryKey boolean

Whether the column is a primary key.

$name string|null

The column's name.

$notNull boolean|null

Whether the column is not nullable.

$reference Yiisoft\Db\Constraint\ForeignKey|null

The foreign key constraint.

$scale integer|null

The number of digits to the right of the decimal point.

$size integer|null

The column's size.

$unique boolean

Whether the column is unique.

$unsigned boolean

Whether the column is unsigned.

$args mixed

Additional arguments to be passed to the constructor.

                public function __construct(
    ?string $type = null,
    private bool $autoIncrement = false,
    private ?string $check = null,
    private ?string $comment = null,
    private bool $computed = false,
    private ?string $dbType = null,
    private ?string $extra = null,
    private bool $primaryKey = false,
    private ?string $name = null,
    private ?bool $notNull = null,
    private ?ForeignKey $reference = null,
    private ?int $scale = null,
    private ?int $size = null,
    private bool $unique = false,
    private bool $unsigned = false,
    mixed ...$args,
) {
    $this->type = $type ?? static::DEFAULT_TYPE;
    if (array_key_exists('defaultValue', $args)) {
        $this->defaultValue = $args['defaultValue'];
        unset($args['defaultValue']);
    }
    /** @psalm-var array<string, mixed> $args */
    foreach ($args as $property => $value) {
        if (property_exists($this, $property)) {
            $this->$property = $value;
        }
    }
}

            
autoIncrement() public method

public Yiisoft\Db\Schema\Column\AbstractColumn autoIncrement ( boolean $autoIncrement true )
$autoIncrement boolean

                public function autoIncrement(bool $autoIncrement = true): static
{
    $this->autoIncrement = $autoIncrement;
    return $this;
}

            
check() public method

public Yiisoft\Db\Schema\Column\AbstractColumn check ( string|null $check )
$check string|null

                public function check(?string $check): static
{
    $this->check = $check;
    return $this;
}

            
comment() public method

public Yiisoft\Db\Schema\Column\AbstractColumn comment ( string|null $comment )
$comment string|null

                public function comment(?string $comment): static
{
    $this->comment = $comment;
    return $this;
}

            
computed() public method

public Yiisoft\Db\Schema\Column\AbstractColumn computed ( boolean $computed true )
$computed boolean

                public function computed(bool $computed = true): static
{
    $this->computed = $computed;
    return $this;
}

            
dbType() public method

public Yiisoft\Db\Schema\Column\AbstractColumn dbType ( string|null $dbType )
$dbType string|null

                public function dbType(?string $dbType): static
{
    $this->dbType = $dbType;
    return $this;
}

            
dbTypecast() public abstract method

Defined in: Yiisoft\Db\Schema\Column\ColumnInterface::dbTypecast()

Convert a value from its PHP representation to a database-specific representation.

yiisoft/db calls it automatically by when preparing an SQL statement, so you don't usually need to call it directly in your code.

If the value is null or an {@see \Yiisoft\Db\Schema\Column\Expression}, there will be no conversion.

public abstract mixed dbTypecast ( mixed $value )
$value mixed
throws Yiisoft\Db\Exception\NotSupportedException

                public function dbTypecast(mixed $value): mixed;

            
defaultValue() public method

public Yiisoft\Db\Schema\Column\AbstractColumn defaultValue ( mixed $defaultValue )
$defaultValue mixed

                public function defaultValue(mixed $defaultValue): static
{
    $this->defaultValue = $defaultValue;
    return $this;
}

            
extra() public method

public Yiisoft\Db\Schema\Column\AbstractColumn extra ( string|null $extra )
$extra string|null

                public function extra(?string $extra): static
{
    $this->extra = $extra;
    return $this;
}

            
getCheck() public method

public string|null getCheck ( )

                public function getCheck(): ?string
{
    return $this->check;
}

            
getComment() public method

public string|null getComment ( )

                public function getComment(): ?string
{
    return $this->comment;
}

            
getDbType() public method

public string|null getDbType ( )

                public function getDbType(): ?string
{
    return $this->dbType;
}

            
getDefaultValue() public method

public mixed getDefaultValue ( )

                public function getDefaultValue(): mixed
{
    return $this->defaultValue ?? null;
}

            
getExtra() public method

public string|null getExtra ( )

                public function getExtra(): ?string
{
    return $this->extra;
}

            
getName() public method

public string|null getName ( )

                public function getName(): ?string
{
    return $this->name;
}

            
getReference() public method

public Yiisoft\Db\Constraint\ForeignKey|null getReference ( )

                public function getReference(): ?ForeignKey
{
    return $this->reference;
}

            
getScale() public method

public integer|null getScale ( )

                public function getScale(): ?int
{
    return $this->scale;
}

            
getSize() public method

public integer|null getSize ( )

                public function getSize(): ?int
{
    return $this->size;
}

            
getType() public method

public string getType ( )

                public function getType(): string
{
    return $this->type;
}

            
hasDefaultValue() public method

public boolean hasDefaultValue ( )

                public function hasDefaultValue(): bool
{
    return property_exists($this, 'defaultValue');
}

            
isAutoIncrement() public method

public boolean isAutoIncrement ( )

                public function isAutoIncrement(): bool
{
    return $this->autoIncrement;
}

            
isComputed() public method

public boolean isComputed ( )

                public function isComputed(): bool
{
    return $this->computed;
}

            
isNotNull() public method

public boolean|null isNotNull ( )

                public function isNotNull(): ?bool
{
    return $this->notNull;
}

            
isPrimaryKey() public method

public boolean isPrimaryKey ( )

                public function isPrimaryKey(): bool
{
    return $this->primaryKey;
}

            
isUnique() public method

public boolean isUnique ( )

                public function isUnique(): bool
{
    return $this->unique;
}

            
isUnsigned() public method

public boolean isUnsigned ( )

                public function isUnsigned(): bool
{
    return $this->unsigned;
}

            
notNull() public method

public Yiisoft\Db\Schema\Column\AbstractColumn notNull ( boolean|null $notNull true )
$notNull boolean|null

                public function notNull(?bool $notNull = true): static
{
    $this->notNull = $notNull;
    return $this;
}

            
null() public method

public Yiisoft\Db\Schema\Column\AbstractColumn null ( )

                public function null(): static
{
    $this->notNull = false;
    return $this;
}

            
phpTypecast() public abstract method

Defined in: Yiisoft\Db\Schema\Column\ColumnInterface::phpTypecast()

Converts the input value after retrieval from the database.

public abstract mixed phpTypecast ( mixed $value )
$value mixed
throws Yiisoft\Db\Exception\NotSupportedException

                public function phpTypecast(mixed $value): mixed;

            
primaryKey() public method

public Yiisoft\Db\Schema\Column\AbstractColumn primaryKey ( boolean $primaryKey true )
$primaryKey boolean

                public function primaryKey(bool $primaryKey = true): static
{
    $this->primaryKey = $primaryKey;
    return $this;
}

            
reference() public method

public Yiisoft\Db\Schema\Column\AbstractColumn reference ( Yiisoft\Db\Constraint\ForeignKey|null $reference )
$reference Yiisoft\Db\Constraint\ForeignKey|null

                public function reference(?ForeignKey $reference): static
{
    $this->reference = $reference;
    return $this;
}

            
scale() public method

public Yiisoft\Db\Schema\Column\AbstractColumn scale ( integer|null $scale )
$scale integer|null

                public function scale(?int $scale): static
{
    $this->scale = $scale;
    return $this;
}

            
size() public method

public Yiisoft\Db\Schema\Column\AbstractColumn size ( integer|null $size )
$size integer|null

                public function size(?int $size): static
{
    $this->size = $size;
    return $this;
}

            
throwWrongTypeException() protected method

protected never throwWrongTypeException ( string $type )
$type string

                protected function throwWrongTypeException(string $type): never
{
    throw new InvalidArgumentException("Wrong $type value for $this->type column.");
}

            
type() public method

public Yiisoft\Db\Schema\Column\AbstractColumn type ( string $type )
$type string

                public function type(string $type): static
{
    $this->type = $type;
    return $this;
}

            
unique() public method

public Yiisoft\Db\Schema\Column\AbstractColumn unique ( boolean $unique true )
$unique boolean

                public function unique(bool $unique = true): static
{
    $this->unique = $unique;
    return $this;
}

            
unsigned() public method

public Yiisoft\Db\Schema\Column\AbstractColumn unsigned ( boolean $unsigned true )
$unsigned boolean

                public function unsigned(bool $unsigned = true): static
{
    $this->unsigned = $unsigned;
    return $this;
}

            
withName() public method

public Yiisoft\Db\Schema\Column\AbstractColumn withName ( string|null $name )
$name string|null

                public function withName(?string $name): static
{
    $new = clone $this;
    $new->name = $name;
    return $new;
}