morrislaptop / laravel-instantiate-rule
验证对象构造函数
v0.1.0
2022-08-01 10:41 UTC
Requires
- php: ^8.1
- illuminate/contracts: ^9.0
- spatie/laravel-package-tools: ^1.9.2
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^6.0
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.21
- pestphp/pest-plugin-laravel: ^1.1
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- phpunit/phpunit: ^9.5
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-09 13:19:17 UTC
README
验证对象构造函数
您的验证规则通常属于您的领域模型。使用 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)。请参阅 许可证文件 以获取更多信息。