seferov / request-validator-bundle
使用控制器注解验证请求参数
v0.4.0
2022-01-12 08:36 UTC
Requires
- php: ~7.0
- sensio/framework-extra-bundle: ^3.0 || ^5.1
- symfony/framework-bundle: ^4.0 || ^5.0
Requires (Dev)
- phpunit/phpunit: ^5.6 || ^6.5
- symfony/symfony: ^4.0 || ^5.0
README
使用方法
<?php namespace AppBundle\Controller; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\Validator\Constraints as Assert; use Seferov\RequestValidatorBundle\Validator\RequestValidator; use Seferov\RequestValidatorBundle\Annotation\Validator; class AcmeController extends Controller { /** * @Validator(name="page", default="1", constraints={@Assert\Type(type="numeric"), @Assert\Range(min=1)}) * @Validator(name="limit", default="25", constraints={@Assert\Type(type="numeric"), @Assert\Range(min=10, max=100)}) * @Validator(name="order", default="desc", constraints={@Assert\Choice(choices={"asc", "desc"}, message="error.wrong_order_choice")}) * @Validator(name="name", constraints={@Assert\NotBlank()}) * @Validator(name="email", required=true, constraints={@Assert\Email()}) * * @param RequestValidator $requestValidator */ public function someAction(RequestValidator $requestValidator) { // You can get errors if there is any /** @var \Symfony\Component\Validator\ConstraintViolationList $errors */ $errors = $requestValidator->getErrors(); // You can get the request value with `get($path)` method $email = $requestValidator->get('email'); // ... } }
安装步骤
步骤 1: 下载 Bundle
打开命令行控制台,进入您的项目目录,并执行以下命令以下载此 Bundle 的最新稳定版本
$ composer require seferov/request-validator-bundle
此命令需要您全局安装了 Composer,具体请参考 Composer 文档的安装章节。
步骤 2: 启用 Bundle
然后,通过将其添加到项目 app/AppKernel.php
文件中注册的 Bundle 列表来启用该 Bundle
<?php // app/AppKernel.php // ... class AppKernel extends Kernel { public function registerBundles() { $bundles = array( // ... new Seferov\RequestValidatorBundle\SeferovRequestValidatorBundle(), ); // ... } // ... }