Symfony 3.4 断言可选验证回调不起作用

Symfony 3.4 Assert optional validation callback not working

提问人:deepsingh 提问时间:8/1/2023 更新时间:8/4/2023 访问量:41

问:

我已经在 Assert\Optional 中放置了一个回调,但是当我将 Optional 放在外部时,它没有被调用,但它确实被调用了,但是如果该选项参数不在请求中,我会收到字段错过错误。我想要的是,如果该参数在请求中,它应该传递给回调以进行自定义验证,如果不是,它不应该产生缺少字段错误。

下面是我正在尝试的代码,但它没有按预期工作。

            "list_id"=>[
                new Assert\Optional(
                    new Assert\NotBlank(
                        ['message'=>$this->translator->trans("required")
                    
                        ]
                    ),
                    new  Assert\Type(['integer',
                        'message' => $this->translator->trans("integer")
            
                    ]),
                    new Assert\Callback([$this, 'validateList']),
                ),
            
                
            ],

我尝试使用自定义验证回调添加可选字段验证

php symfony 验证 symfony-3.4

评论

0赞 Álvaro González 8/2/2023
Symfony表格可能很棘手。您能否在表格中分享字段定义,以防相关?
0赞 deepsingh 8/4/2023
我已经找到了解决方案,我没有使用任何表格。我正在处理 _POST 美元的数据。
0赞 Álvaro González 8/4/2023
您有一个标签,说明该应用程序使用Symfony表单组件。这不对吗?

答:

0赞 deepsingh 8/4/2023 #1
 "list_id"=>[
            new Assert\Optional(
            
                new Assert\Callback([$this, 'validateList']),
            ),
        
            
        ],

如果我删除其他验证,回调就会起作用,并且如果该字段不在请求数据中,我不会出现缺少字段错误。