【发布时间】:2011-12-05 22:58:33
【问题描述】:
我正在阅读 tutorial 并且有些部分我不明白:
public function validatedBy()
{
return 'validator.unique';
}
这是一个好习惯还是我应该使用 Symfony 的默认值 get_class($this).'Validator'(来自 docs)
public function requiredOptions()
{
return array('entity', 'property');
}
public function targets()
{
return self::PROPERTY_CONSTRAINT;
}
以上方法都需要吗?它没有出现在docs
# MyApp/MyBundle/Resources/config/services.yml
parameters:
my.validator.unique.class: MyApp\MyBundle\Validator\UniqueValidator
services:
my.validator.unique:
class: %my.validator.unique.class%
arguments: [@doctrine.orm.entity_manager]
tags:
- { name: validator.constraint_validator, alias: validator.unique }
那个参数声明只是为了让我可以使用%my.validator.unique.class%,而不是完全限定的类名吗?
关于name 和alias。我可以说name 是约束的“类型”。 alias 是Constraint::validatedBy() 使用的别名
# Extension class
public function getAlias() {
return 'my';
}
以上是必需的吗?我没有看到 my 在任何地方使用?
// get the existing registered namespaces for validator annotations
$namespaces = $container->getParameter('validator.annotations.namespaces');
// add our namespace under the alias myvalidation
$namespaces['myvalidation'] = 'MyApp\\MyBundle\\Validator\\';
// save it
$container->setParameter('validator.annotations.namespaces', $namespaces);
似乎@Annotation 在Constraint 类中有效? validator.annotations.namespaces 给出一个关于不存在参数的错误
【问题讨论】:
标签: validation symfony