morrislaptop/laravel-instantiate-rule


README

验证对象构造函数

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

您的验证规则通常属于您的领域模型。使用 InstantiateRule 将这些规则引入 Laravel 验证。

class FormRequest 
{
    public function rules()
    {
        return [
            'email' => ['required', new InstantiateRule(EmailAddress::class)]
        ];
    }
}

安装

您可以通过 composer 安装此包

composer require morrislaptop/laravel-instantiate-rule

用法

作为简单规则

class FormRequest 
{
    public function rules()
    {
        return [
            'email' => ['required', new InstantiateRule(EmailAddress::class)]
        ];
    }
}

对于复杂对象,假设数组键与构造函数对象匹配或按构造函数的顺序排列。

class Address
{
    public function __construct(
        private string $line1, 
        private string $postcode, 
        private string $country) {
    }
}

$this->jsonPost('/users', ['address' => [
    'line1' => '123 Fake St',
    'postcode' => '90210',
    'country' => 'Australia',
]]);

class FormRequest 
{
    public function rules()
    {
        return [
            'address' => ['required', new InstantiateRule(Address::class)]
        ];
    }
}

或者,如果您喜欢,可以指定自定义静态构造函数...

class FormRequest 
{
    public function rules()
    {
        return [
            'address' => ['required', new InstantiateRule(Address::class, 'createForValidation')]
        ];
    }
}

测试

composer test

变更日志

请参阅 变更日志 以获取有关最近更改的更多信息。

贡献

请参阅 贡献指南 以获取详细信息。

安全漏洞

请参阅 我们的安全策略 了解如何报告安全漏洞。

致谢

许可证

MIT 许可证 (MIT)。请参阅 许可证文件 以获取更多信息。