validador de clase symfony2 para entidad sluggable

Tengo una restricción de clase para una entidad con el campo slug. Quiero hacer algunas comprobaciones del slug en una restricción de clase personalizada, pero en la restricción el valor de getSlug() esta vacio.

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

=> $slug esta vacio.

Aquí está mi Entidad

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;

Aquí está mi controlador:

public function createAction()
{
    $entity  = new Page();
    $request = $this->getRequest();
    $form    = $this->createForm( new PageType(), $entity );
    $form->bindRequest( $request );

Se llama al validador de clase personalizada $form->bindRequest( $request ). Creo que slug no está configurado, porque la doctrina lo configurará en el evento previo a la persistencia. Pero este evento se llama más tarde en $em->persist( $entity ).

¿Hay alguna manera de llegar al slug de la página en mi restricción de clase?

preguntado el 01 de julio de 12 a las 10:07

1 Respuestas

No, no puedes.

Como dijiste, la babosa se genera en prePersist evento.

¿Estás seguro de que tienes que validar slug? Si es el caso, eliminar @Gedmo\Slug anotación y créelo usted mismo... Pero no estoy seguro de que sea una buena idea.

Respondido 02 Jul 12, 08:07

Tal vez no necesito un validador para el slug. Lo que necesito es una combinación única de user_slug/page_slug como se describe en stackoverflow.com/questions/10968300/… - Huzi

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.