表达式语言Symfony组件 - 无法验证空字符串

时间:2014-04-03 23:28:28

标签: php validation symfony

我尝试在验证中使用表达式语言,我发现了一些奇怪的东西。

让我们考虑一下狗模型

class Dog
{

    /**
     * @Assert\Expression("this.getName() != 'aa' ", message="Not good!")
     */
    private $name = 'aa';
    ...
}

' AA' !=' aa' => false所以验证服务报告错误 - 很酷, 但是让我们尝试用

做同样的事情
class Dog
{

    /**
     * @Assert\Expression("this.getName() != '' ", message="Not good!")
     */
    private $name = '';
    ...
}

这个在验证期间没有返回任何错误???为什么?

1 个答案:

答案 0 :(得分:1)

哦,我找到了你感兴趣的专栏:)

第47行, vendor / symfony / symfony / src / Symfony / Component / Validator / Constraints / ExpressionValidator.php

if (null === $value || '' === $value) {
  return;
}