0

我对带有字段 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 没有设置,因为教义会在 pre persist 事件中设置它。但此事件稍后在$em->persist( $entity ).

有没有办法在我的类约束中找到页面的slug?

4

1 回答 1

0

不,你不能。

就像你说的,蛞蝓是在prePersist事件中生成的。

你确定你必须验证slug吗?如果是这种情况,请删除@Gedmo\Slug注释并自己创建它......但我不确定这是否是一个好主意。

于 2012-07-02T07:06:50.720 回答