0 follower

Final Class Yiisoft\Validator\Rule\In

InheritanceYiisoft\Validator\Rule\In
ImplementsYiisoft\Validator\DumpedRuleInterface, Yiisoft\Validator\SkipOnEmptyInterface, Yiisoft\Validator\SkipOnErrorInterface, Yiisoft\Validator\WhenInterface
Uses TraitsYiisoft\Validator\Rule\Trait\SkipOnEmptyTrait, Yiisoft\Validator\Rule\Trait\SkipOnErrorTrait, Yiisoft\Validator\Rule\Trait\WhenTrait

Defines validation options to check that the value is one of the values provided in $values.

If the \Yiisoft\Validator\Rule\In::$not is set, the validation logic is inverted and the rule will ensure that the value is NOT one of them.

In case of the validated value being a list, the order of values is important.

Nested arrays are supported too in both \Yiisoft\Validator\Rule\values argument and in the validated value (the order of values in lists must match, the order of keys in associative arrays is not important).

If the validated value is a set, use Yiisoft\Validator\Rule\Subset instead.

See also Yiisoft\Validator\Rule\InHandler.

Public Methods

Hide inherited methods

Method Description Defined By
__construct() Yiisoft\Validator\Rule\In
getHandler() Yiisoft\Validator\Rule\In
getMessage() Get error message when the value is not in a set of $values. Yiisoft\Validator\Rule\In
getName() Yiisoft\Validator\Rule\In
getOptions() Yiisoft\Validator\Rule\In
getSkipOnEmpty() A getter for $skipOnEmpty property. Yiisoft\Validator\Rule\Trait\SkipOnEmptyTrait
getValues() Get a set of values to check against. Yiisoft\Validator\Rule\In
getWhen() A getter for $when property. Yiisoft\Validator\Rule\Trait\WhenTrait
isNot() Whether to invert the validation logic. Defaults to false. If set to true, the value must NOT be among the list of $values. Yiisoft\Validator\Rule\In
isStrict() Whether the comparison is strict (both type and value must be the same). Yiisoft\Validator\Rule\In
shouldSkipOnError() A getter for $skipOnError property. Yiisoft\Validator\Rule\Trait\SkipOnErrorTrait
skipOnEmpty() An immutable setter to change $skipOnEmpty property. Yiisoft\Validator\Rule\Trait\SkipOnEmptyTrait
skipOnError() An immutable setter to change $skipOnError property. Yiisoft\Validator\Rule\Trait\SkipOnErrorTrait
when() An immutable setter to change $when property. Yiisoft\Validator\Rule\Trait\WhenTrait

Method Details

Hide inherited methods

__construct() public method

public __construct( iterable $values, boolean $strict false, boolean $not false, string $message '{Property} is not in the list of acceptable values.', boolean|callable|null $skipOnEmpty null, boolean $skipOnError false, Closure|null $when null ): mixed
$values iterable

A set of values to check against. Nested arrays are supported too (the order of values in lists must match, the order of keys in associative arrays is not important).

$strict boolean

Whether the comparison to each value in the set is strict:

Defaults to false meaning non-strict mode is used.

$not boolean

Whether to invert the validation logic. Defaults to false. If set to true, the value must NOT be among the list of $values.

$message string

Error message when the value is not in a set of value.

You may use the following placeholders in the message:

  • {property}: the name of the property.
$skipOnEmpty boolean|callable|null

Whether to skip this rule if the value validated is empty. See Yiisoft\Validator\SkipOnEmptyInterface.

$skipOnError boolean

Whether to skip this rule if any of the previous rules gave an error. See Yiisoft\Validator\SkipOnErrorInterface.

$when Closure|null

A callable to define a condition for applying the rule. See Yiisoft\Validator\WhenInterface.

                public function __construct(
    private iterable $values,
    private bool $strict = false,
    private bool $not = false,
    private string $message = '{Property} is not in the list of acceptable values.',
    bool|callable|null $skipOnEmpty = null,
    private bool $skipOnError = false,
    private ?Closure $when = null,
) {
    $this->skipOnEmpty = $skipOnEmpty;
}

            
getHandler() public method

public getHandler( ): string

                public function getHandler(): string
{
    return InHandler::class;
}

            
getMessage() public method

Get error message when the value is not in a set of $values.

public getMessage( ): string
return string

Error message.

                public function getMessage(): string
{
    return $this->message;
}

            
getName() public method

public getName( ): string

                public function getName(): string
{
    return self::class;
}

            
getOptions() public method

public getOptions( ): array

                public function getOptions(): array
{
    return [
        'values' => $this->values,
        'strict' => $this->strict,
        'not' => $this->not,
        'message' => [
            'template' => $this->message,
            'parameters' => [],
        ],
        'skipOnEmpty' => $this->getSkipOnEmptyOption(),
        'skipOnError' => $this->skipOnError,
    ];
}

            
getSkipOnEmpty() public method

Defined in: Yiisoft\Validator\Rule\Trait\SkipOnEmptyTrait::getSkipOnEmpty()

A getter for $skipOnEmpty property.

public getSkipOnEmpty( ): boolean|callable|null
return boolean|callable|null

A current raw (non-normalized) value.

                public function getSkipOnEmpty(): bool|callable|null
{
    return $this->skipOnEmpty;
}

            
getValues() public method

Get a set of values to check against.

public getValues( ): iterable
return iterable

A set of values.

                public function getValues(): iterable
{
    return $this->values;
}

            
getWhen() public method

Defined in: Yiisoft\Validator\Rule\Trait\WhenTrait::getWhen()

A getter for $when property.

public getWhen( ): Closure|null
return Closure|null

Current value:

  • null - always apply the validation.
  • callable - apply the validation depending on a return value: true - apply, false - do not apply.

                public function getWhen(): ?Closure
{
    return $this->when;
}

            
isNot() public method

Whether to invert the validation logic. Defaults to false. If set to true, the value must NOT be among the list of $values.

public isNot( ): boolean
return boolean

Whether to invert the validation logic.

                public function isNot(): bool
{
    return $this->not;
}

            
isStrict() public method

Whether the comparison is strict (both type and value must be the same).

public isStrict( ): boolean
return boolean

Whether the comparison is strict.

                public function isStrict(): bool
{
    return $this->strict;
}

            
shouldSkipOnError() public method

Defined in: Yiisoft\Validator\Rule\Trait\SkipOnErrorTrait::shouldSkipOnError()

A getter for $skipOnError property.

public shouldSkipOnError( ): boolean
return boolean

Current value. true means to skip the current rule when the previous one errored and false - do not skip.

                public function shouldSkipOnError(): bool
{
    return $this->skipOnError;
}

            
skipOnEmpty() public method

Defined in: Yiisoft\Validator\Rule\Trait\SkipOnEmptyTrait::skipOnEmpty()

An immutable setter to change $skipOnEmpty property.

public skipOnEmpty( boolean|callable|null $value ): $this
$value boolean|callable|null

A new value.

return $this

The new instance with a changed value.

                public function skipOnEmpty(bool|callable|null $value): static
{
    $new = clone $this;
    $new->skipOnEmpty = $value;
    return $new;
}

            
skipOnError() public method

Defined in: Yiisoft\Validator\Rule\Trait\SkipOnErrorTrait::skipOnError()

An immutable setter to change $skipOnError property.

public skipOnError( boolean $value ): $this
$value boolean

A new value. true means to skip the current rule when the previous one errored and false - do not skip.

return $this

The new instance with a changed value.

                public function skipOnError(bool $value): static
{
    $new = clone $this;
    $new->skipOnError = $value;
    return $new;
}

            
when() public method

Defined in: Yiisoft\Validator\Rule\Trait\WhenTrait::when()

An immutable setter to change $when property.

public when( Closure|null $value ): $this
$value Closure|null

A new value:

  • null - always apply the validation.
  • callable - apply the validation depending on a return value: true - apply, false - do not apply.
return $this

The new instance with a changed value.

                public function when(?Closure $value): static
{
    $new = clone $this;
    $new->when = $value;
    return $new;
}