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
{
...
}