yiisoft / validator

Yii validator library
https://www.yiiframework.com/
BSD 3-Clause "New" or "Revised" License
110 stars 36 forks source link

Add support non-public properties for dot notation in `Nested` rule #642

Open vjik opened 7 months ago

vjik commented 7 months ago
final class Body
{
    private ?Shipping $shipping = null;
}

final class Shipping
{
    private string $phone = '';
}

'body' => new Nested(['shipping.phone' => new Regex('/^\+\d{11}$/')]);

So far it throws error:

Error: Cannot access private property Yiisoft\FormModel\Tests\Support\Form\NestedMixedForm\Shipping::$phone

/projects/yiisoft/yii-dev-tool/dev/form-model/vendor/yiisoft/arrays/src/ArrayHelper.php:264
/projects/yiisoft/yii-dev-tool/dev/form-model/vendor/yiisoft/arrays/src/ArrayHelper.php:224
/projects/yiisoft/yii-dev-tool/dev/form-model/vendor/yiisoft/arrays/src/ArrayHelper.php:312
/projects/yiisoft/yii-dev-tool/dev/form-model/vendor/yiisoft/validator/src/Rule/NestedHandler.php:86
/projects/yiisoft/yii-dev-tool/dev/form-model/vendor/yiisoft/validator/src/Validator.php:183
/projects/yiisoft/yii-dev-tool/dev/form-model/vendor/yiisoft/validator/src/Validator.php:136