Symfony trait中的类约束不起作用

Symfony trait中的类约束不起作用,symfony,validation,constraints,traits,Symfony,Validation,Constraints,Traits,我有一个简单的实体类型“城市” 正如你所看到的,它使用了一个特征,看起来像这样 use AppBundle\Validator\Constraint as AppConstraint; /** * @AppConstraint\IsDuplicateLocation * @AppConstraint\IsLocation */ trait GeoTrait { /** * @var string * * @ORM\Column(name="geo

我有一个简单的实体类型“城市”

正如你所看到的,它使用了一个特征,看起来像这样

use AppBundle\Validator\Constraint as AppConstraint;

/**
 * @AppConstraint\IsDuplicateLocation
 * @AppConstraint\IsLocation
 */
trait GeoTrait
{
         /**
    * @var string
    *
    * @ORM\Column(name="geoLat", type="decimal", nullable = true, precision=9, scale=6)
    */
   private $geoLat;
   /**
    * @var string
    *
    * @ORM\Column(name="geoLng", type="decimal", nullable = true, precision=9, scale=6)
    */
   private $geoLng;
}
现在,如果我创建一个新实体并尝试使用validator服务对其进行验证,它似乎不会验证我的自定义类约束


如果我向trait添加一个字段约束,验证工作正常,但对类约束无效。为什么这不起作用?

Trait不是类,所以不能在自定义约束“getTargets()”方法中以它为目标

尝试将类约束添加到城市类

/**
* @AppConstraint\IsDuplicateLocation
* @AppConstraint\IsLocation
*/
class City
{
    ...
}

如果我用一个表单创建一个新的实体,这是有效的。但是如果我像本例中那样使用验证器服务:没有错误(尽管应该有)@casper它应该可以工作。我刚测试过。发布一个约束及其验证程序代码,以便我们可以对其进行分析。
/**
* @AppConstraint\IsDuplicateLocation
* @AppConstraint\IsLocation
*/
class City
{
    ...
}