相关疑难解决方法(0)

为什么来自自定义验证的错误限制没有附加到表单的特定字段?

我有一个ArticelPattern类,它有$ extraPatterns属性.此属性是ExtraPattern(类)元素的数组.

ExtraPattern类有一个自定义约束(我使用注释应用).

对于表单处理,我使用extraPatterns集合字段创建了一个ArticelPatternType类.

现在,当我验证此表单并且ArticelPattern :: $ extraPatterns集合的某个元素引发了约束违规时,错误未分配给该元素,而是分配给整个表单,所以我不能在导致此错误的相应表单字段旁边显示此错误.

而不是将我的自定义约束放在ExtraPattern类上,如下所示:

/**
 * @AssertApl
 */
class ExtraPattern 
Run Code Online (Sandbox Code Playgroud)

我也尝试将它放在集合属性上,如下所示:

/**
 * @Assert\All(@AssertApl)
 */
private $extraPatterns;
Run Code Online (Sandbox Code Playgroud)

但结果相同.由此集合的元素引起的@AssertApl约束错误不会分配给它们,而是分配给整个表单.

任何想法我怎么能让它工作?

symfony

1
推荐指数
1
解决办法
1696
查看次数

Symfony2自定义验证器

我正在尝试使用symfony2构建一个自定义验证器,但发生了一些奇怪的事情:

我已经按照symfony2 cookbook中的步骤创建了Password和PasswordValidate,但是第一次加载页面时我收到此错误:

AnnotationException: [Semantical Error] The annotation "@Symfony\Component\Validator\Constraints\Password" in property NMSP\MyBundle\Entity\User::$password does not exist, or could not be auto-loaded. 
Run Code Online (Sandbox Code Playgroud)

重新加载后,错误消失,验证仍然不会触发,并返回代码有效.

这是相关代码:

//annotation declaration:
/**
 * @ORM\Column(type="string", length="32", unique="true")
 * 
 * @Assert\MinLength(3)
 * @Assert\Password2()
 */
protected $password;

//load files with the following in the code
services:
  validator.password:
    class: NMSP\MyBundle\Validator\PasswordValidator
    tags:
        - { name: validator.constraint_validator, alias: password }
Run Code Online (Sandbox Code Playgroud)

无法想出这一个:(

validation symfony

0
推荐指数
1
解决办法
3109
查看次数

标签 统计

symfony ×2

validation ×1