Class 用于sluggable Entity的symfony2类验证程序

Class 用于sluggable Entity的symfony2类验证程序,class,symfony,constraints,Class,Symfony,Constraints,对于具有字段slug的实体,我有一个类约束。我想在自定义类约束中对slug进行一些检查,但在约束中,getSlug()的值为空 // my custom class validator public function isValid( $page, Constraint $constraint ) { $slug = $page->getSlug(); =>$slug为空 这是我的实体 class page { /** * @ORM\Column(name="n

对于具有字段slug的实体,我有一个类约束。我想在自定义类约束中对slug进行一些检查,但在约束中,
getSlug()
的值为空

// my custom class validator
public function isValid( $page, Constraint $constraint ) {
    $slug = $page->getSlug();
=>
$slug
为空

这是我的实体

class page
{
    /**
     * @ORM\Column(name="name", type="string", length=150)
     * @Assert\NotBlank()
     */
    private $name;

    /**
     * @Gedmo\Slug(fields={"name"})
     * @ORM\Column(name="slug", type="string", length=255)
     */
    private $slug;
这是我的控制器:

public function createAction()
{
    $entity  = new Page();
    $request = $this->getRequest();
    $form    = $this->createForm( new PageType(), $entity );
    $form->bindRequest( $request );
$form->bindRequest($request)
中调用自定义类验证器。我认为,slug并没有设置,因为条令会将其设置为预持久事件。但稍后将在
$em->persist($entity)
处调用此事件

在我的类约束中,有没有一种方法可以到达页面的slug部分?

不,你不能

正如您所说,slug是在
prePersist
事件中生成的


您确定必须验证slug吗?如果是这样,请删除
@Gedmo\Slug
注释并自己创建它。。。但我不确定这是否真的是个好主意。

也许我不需要为slug提供验证器。我需要的是一个独特的组合,如中所述的用户\u slug/页面\u slug