0 follower

Abstract Class Yiisoft\Db\Schema\Column\AbstractStructuredColumn

InheritanceYiisoft\Db\Schema\Column\AbstractStructuredColumn » Yiisoft\Db\Schema\Column\AbstractColumn
ImplementsYiisoft\Db\Schema\Column\ColumnInterface
SubclassesYiisoft\Db\Schema\Column\StructuredColumn, Yiisoft\Db\Schema\Column\StructuredLazyColumn

Represents an abstract structured column.

See also:

Protected Properties

Hide inherited properties

Property Type Description Defined By
$columns Yiisoft\Db\Schema\Column\ColumnInterface[] Columns metadata of the structured type. Yiisoft\Db\Schema\Column\AbstractStructuredColumn

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
columns() Set columns of the structured type. Yiisoft\Db\Schema\Column\AbstractStructuredColumn
comment() Yiisoft\Db\Schema\Column\AbstractColumn
computed() Yiisoft\Db\Schema\Column\AbstractColumn
dbType() Yiisoft\Db\Schema\Column\AbstractColumn
dbTypecast() Yiisoft\Db\Schema\Column\AbstractStructuredColumn
defaultValue() Yiisoft\Db\Schema\Column\AbstractColumn
extra() Yiisoft\Db\Schema\Column\AbstractColumn
getCheck() Yiisoft\Db\Schema\Column\AbstractColumn
getColumns() Get the metadata of the structured type columns. Yiisoft\Db\Schema\Column\AbstractStructuredColumn
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::STRUCTURED Yiisoft\Db\Schema\Column\AbstractStructuredColumn

Property Details

Hide inherited properties

$columns protected property

Columns metadata of the structured type.

Method Details

Hide inherited methods

__construct() public method
public __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 ): mixed
$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 autoIncrement( boolean $autoIncrement true ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$autoIncrement boolean

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

            
check() public method
public check( string|null $check ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$check string|null

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

            
columns() public method

Set columns of the structured type.

public columns( Yiisoft\Db\Schema\Column\ColumnInterface[] $columns ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$columns Yiisoft\Db\Schema\Column\ColumnInterface[]

The metadata of the structured type columns.

                public function columns(array $columns): static
{
    $this->columns = $columns;
    return $this;
}

            
comment() public method
public comment( string|null $comment ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$comment string|null

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

            
computed() public method
public computed( boolean $computed true ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$computed boolean

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

            
dbType() public method
public dbType( string|null $dbType ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$dbType string|null

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

            
dbTypecast() public method

public dbTypecast( array|object|string|null $value ): Yiisoft\Db\Expression\ExpressionInterface|null
$value array|object|string|null

                public function dbTypecast(mixed $value): ?ExpressionInterface
{
    if ($value === null || $value instanceof ExpressionInterface) {
        return $value;
    }
    return new StructuredValue($value, $this);
}

            
defaultValue() public method
public defaultValue( mixed $defaultValue ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$defaultValue mixed

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

            
extra() public method
public extra( string|null $extra ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$extra string|null

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

            
getCheck() public method
public getCheck( ): string|null

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

            
getColumns() public method

Get the metadata of the structured type columns.

public getColumns( ): Yiisoft\Db\Schema\Column\ColumnInterface[]

                public function getColumns(): array
{
    return $this->columns;
}

            
getComment() public method
public getComment( ): string|null

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

            
getDbType() public method
public getDbType( ): string|null

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

            
getDefaultValue() public method
public getDefaultValue( ): mixed

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

            
getExtra() public method
public getExtra( ): string|null

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

            
getName() public method
public getName( ): string|null

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

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

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

            
getScale() public method
public getScale( ): integer|null

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

            
getSize() public method
public getSize( ): integer|null

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

            
getType() public method
public getType( ): string

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

            
hasDefaultValue() public method
public hasDefaultValue( ): boolean

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

            
isAutoIncrement() public method
public isAutoIncrement( ): boolean

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

            
isComputed() public method
public isComputed( ): boolean

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

            
isNotNull() public method
public isNotNull( ): boolean|null

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

            
isPrimaryKey() public method
public isPrimaryKey( ): boolean

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

            
isUnique() public method
public isUnique( ): boolean

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

            
isUnsigned() public method
public isUnsigned( ): boolean

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

            
notNull() public method
public notNull( boolean|null $notNull true ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$notNull boolean|null

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

            
null() public method
public null( ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn

                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 phpTypecast( mixed $value ): mixed
$value mixed
throws Yiisoft\Db\Exception\NotSupportedException

                public function phpTypecast(mixed $value): mixed;

            
primaryKey() public method
public primaryKey( boolean $primaryKey true ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$primaryKey boolean

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

            
reference() public method
public reference( Yiisoft\Db\Constraint\ForeignKey|null $reference ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$reference Yiisoft\Db\Constraint\ForeignKey|null

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

            
scale() public method
public scale( integer|null $scale ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$scale integer|null

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

            
size() public method
public size( integer|null $size ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$size integer|null

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

            
throwWrongTypeException() protected method
protected throwWrongTypeException( string $type ): never
$type string

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

            
type() public method
public type( string $type ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$type string

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

            
unique() public method
public unique( boolean $unique true ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$unique boolean

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

            
unsigned() public method
public unsigned( boolean $unsigned true ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$unsigned boolean

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

            
withName() public method
public withName( string|null $name ): Yiisoft\Db\Schema\Column\AbstractStructuredColumn
$name string|null

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