won*_*bak 10 validation symfony
我正在尝试配置约束验证.
使用Symfony\Component\Validator\Constraint;
我的禁忌:
<?php
namespace Acme\MyBundle\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
/**
* @Annotation
*/
class OverlapBroadcasting extends Constraint
{
public $message = 'overlap date';
public function validatedBy()
{
return "overlap_broadcasting";
}
}
Run Code Online (Sandbox Code Playgroud)
我的验证员:
<?php
namespace Acme\MyBundle\Validator\Constraints;
use Symfony\Component\Validator\Constraint;
use Symfony\Component\Validator\ConstraintValidator;
class OverlapBroadcastingValidator extends ConstraintValidator
{
private $entityManager;
public function __construct( $entityManager)
{
$this->entityManager = $entityManager;
}
public function validate($value, Constraint $constraint)
{
var_dump($value);
}
}
Run Code Online (Sandbox Code Playgroud)
我的validation.yml:
Acme\MyBundle\Entity\Broadcasting:
properties:
start_time:
- Acme\MyBundle\Validator\Constraints\OverlapBroadcasting:
message: truc
- NotBlank: ~
Run Code Online (Sandbox Code Playgroud)
我的service.yml:
acme.validator.overlap_broadcasting:
class: Acme\MyBundle\Validator\Constraints\OverlapBroadcasting
arguments: [@doctrine.orm.entity_manager]
tags:
- {name: validator.constraint_validator, alias: overlap_broadcasting}
Run Code Online (Sandbox Code Playgroud)
但我有这个错误:
No default option is configured for constraint Acme\MyBundle\Validator\Constraints\OverlapBroadcasting
Run Code Online (Sandbox Code Playgroud)
red*_*rdo 26
通过将代码复制到我当前的项目中来重现错误,我相当确定问题出在services.yml中.当应该是验证器类时,该类被设置为约束类.服务定义应该是:
acme.validator.overlap_broadcasting:
class: Acme\MyBundle\Validator\Constraints\OverlapBroadcastingValidator
arguments: [@doctrine.orm.entity_manager]
tags:
- {name: validator.constraint_validator, alias: overlap_broadcasting}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5094 次 |
| 最近记录: |