Symfony表达式约束在某些项目中不可用

tquggr8v  于 2023-04-21  发布在  其他
关注(0)|答案(1)|浏览(116)

在将项目从Symfony 5.4迁移到6.2时,我注意到一些(对我来说)令人费解的行为。在其中两个项目中,我在实体中有#[Assert\Expression()属性,这导致了ValidatorException
约束验证器“validator.expression”不存在或未启用。请检查约束类“Symfony\Component\Validator\Constraints\Expression”中的“validatedBy”方法。

我觉得神秘的是:

  • 这两个项目都需要symfony/validatorsymfony/expression-language。到目前为止,我还没有注意到使用Symfony\Component\Validator\Constraints\Expression的额外要求或必要配置。
  • 在第三个项目中--一个最近从头开始创建的项目--expression约束完美地工作。但是在项目的配置中我找不到任何原因为什么约束在这里工作。当然,项目使用symfony/validatorsymfony/expression-language,我没有做任何其他事情来启用expression约束。

这三个项目都基于PHP 8.1和Symfony 6.2,并且它们都运行在同一台开发机器上。我通过创建新的Sf 6.2 symfony/skeleton安装,添加需求,然后从遗留项目中复制代码配置来迁移这两个遗留项目-而新项目也是从6.2 symfony/skeleton创建的。
任何关于问题原因的想法都是受欢迎的。

mkh04yzy

mkh04yzy1#

正如@vodevel所指出的,这是symfony/framework-bundle 6.2.8中的一个问题。升级解决了这个问题。

相关问题