0 follower

Final Class Yiisoft\ActiveRecord\Event\Handler\SoftDelete

InheritanceYiisoft\ActiveRecord\Event\Handler\SoftDelete » Yiisoft\ActiveRecord\Event\Handler\AttributeHandlerProvider

Attribute for implementing soft deletion in Active Record models. Instead of deleting records from the database, it sets a value of the date and time for properties to indicate that the record has been logically deleted.

By default, it sets the current date and time to the deleted_at property.

It can be applied to classes or properties, and it can be repeated for multiple properties.

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( mixed $value null, string $propertyNames )
$value mixed
$propertyNames string

                public function __construct(
    private mixed $value = null,
    string ...$propertyNames,
) {
    $this->value ??= static fn(): DateTimeImmutable => new DateTimeImmutable();
    if (empty($propertyNames)) {
        $propertyNames = ['deleted_at'];
    }
    parent::__construct(...$propertyNames);
}

            
getEventHandlers() public method

public array getEventHandlers ( )

                public function getEventHandlers(): array
{
    return [
        AfterCreateQuery::class => $this->afterCreateQuery(...),
        BeforeDelete::class => $this->beforeDelete(...),
    ];
}

            
getPropertyNames() public method

Defined in: Yiisoft\ActiveRecord\Event\Handler\AttributeHandlerProvider::getPropertyNames()

Returns the list of property names the handler should be applied to.

public string[] getPropertyNames ( )

                public function getPropertyNames(): array
{
    return $this->propertyNames;
}

            
setPropertyNames() public method

Defined in: Yiisoft\ActiveRecord\Event\Handler\AttributeHandlerProvider::setPropertyNames()

Sets the list of property names the handler should be applied to.

public void setPropertyNames ( string[] $propertyNames )
$propertyNames string[]

                public function setPropertyNames(array $propertyNames): void
{
    $this->propertyNames = $propertyNames;
}