Yii Validating Hydrator 1.0
2024-02-02
867次浏览
First stable release of yiisoft/hydrator-validator was tagged.
The package provides a hydrator that also does validation, including raw data. It's useful when input data comes from a user, and you need to validate it and then put it into DTOs.
To use it, the object being validated must implement ValidatedInputInterface
. You can use ValidatedInputTrait
to easily create such object. The validation rules for raw values of the object are defined with Validate
PHP attribute.
Example of object:
use Yiisoft\Hydrator\Validator\Attribute\Validate;
use Yiisoft\Hydrator\Validator\ValidatedInputInterface;
use Yiisoft\Hydrator\Validator\ValidatedInputTrait;
use Yiisoft\Validator\Rule\Email;
use Yiisoft\Validator\Rule\Required;
final class InputDto implements ValidatedInputInterface
{
use ValidatedInputTrait;
#[Email]
private string $email;
#[Validate(new Required())]
private string $name;
}
Validation result could be obtained via its getValidationResult()
method.
Validating hydrator usage example:
use Yiisoft\Hydrator\HydratorInterface;
use Yiisoft\Hydrator\Validator\ValidatingHydrator;
public function actionEdit(RequestInterface $request, ValidatingHydrator $hydrator): ResponseInterface
{
$data = $request->getParsedBody();
$inputDto = $hydrator->create(InputDto::class, $data);
if (!$inputDto->getValidationResult()->isValid()) {
// Validation didn't pass :(
}
// Everything is fine. You can use $inputDto now.
}
新闻归档
热门标签
- yii3
- 扩展
- 发布
- yii2
- debug
- auth client
- view
- bootstrap
- release
- mongodb
- redis
- apidoc
- Yii 2.0
- Yii 1.1
- html
- gii
- runner
- http 客户端
- queue
- console
- mailer
- twig
- extensions
- cache
- translator
- validation
- sphinx
- error handler
- db
- http
- hydrator
- log
- config
- widget
- 图书
- swiftmailer
- imagine
- symfonymailer
- router
- swagger
- elasticsearch
- assets
- i18n
- IDE
- logging
- user
- smarty
- definitions
- fastroute
- csrf