# New in v3 of laminas-validator: Conditional Validator

**URL:** <https://discourse.laminas.dev/t/new-in-v3-of-laminas-validator-conditional-validator/3948>\
**Category:** Show and Tell\
**Tags:** laminas-validator\
**Created:** [August 20, 2025, 7:39am UTC](https://discourse.laminas.dev/t/new-in-v3-of-laminas-validator-conditional-validator/3948 "2025-08-20T07:39:16Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![froschdesign](https://yyz2.discourse-cdn.com/flex032/user_avatar/discourse.laminas.dev/froschdesign/32/38_2.png) [@froschdesign](https://discourse.laminas.dev/u/froschdesign)\
**Post date:** [August 20, 2025, 7:39am UTC](https://discourse.laminas.dev/t/new-in-v3-of-laminas-validator-conditional-validator/3948/1 "2025-08-20T07:39:16Z")

</div>

Version 3 of laminas-validator brings many changes in terms of code, but also new validators. Here is one of them: **`Laminas\Validator\Conditional`**

> `Laminas\Validator\Conditional` allows you to validate a value conditionally depending on the outcome of a user-defined rule.

### Example

```php
$validator = new Conditional($chainFactory, [
    'rule' => static function (array $context): bool {
        return (bool) ($context['subscribe'] ?? null) === true;
    },
    'validators' => [
        ['name' => EmailAddress::class],
    ],
]);

$postPayload = [
    'subscribe' => '1',
    'email' => 'kermit@example.com',
];

$validator->isValid($postPayload['email'], $postPayload); // true

```

> **[Conditional - laminas-validator - Laminas Docs](https://docs.laminas.dev/laminas-validator/v3/validators/conditional/)**
>
> Validation classes for a wide range of domains, and the ability to chain validators to create complex validation criteria.
