2013-05-27 5 views
3

Я пытаюсь настроить Sluggable из StofDoctrineExtensionsBundle для создания пробкового на основе первичного ключа идентификатор и имя поляDoctrineExtension Sluggable не работает с полем идентификатора

/** 
* @var string 
* @Gedmo\Slug(fields={"id","name"}) 
* @ORM\Column(name="slug", type="string", length=255, unique=true) 
*/ 
private $slug; 

Однако это не создает, как Ид имя, только генерирует имя на основе slug. Почему это происходит?

ответ

2

Если Sluggable слушатель прослушивает prePersist работы Доктрины в ...

... тогда ваше лицо имеет в этой точке не иметь идентификатор, потому что он еще не сохранялось.

Это объясняет отсутствие id в слизе.

Установите SluggableListener на номер postPersist и он будет работать по вашему желанию.

Изменить подписку на Gedmo/Sluggable/SluggableListener на postPersist.

+0

Я понимаю, я пытался написать свой собственный SluggableListener, но без успеха, не могли бы вы привести пример? – dextervip

+0

Проблема с использованием сущности «ids» в slug заключается в том, что вам потребуется 2 запроса для создания объекта вместо одного. –

+0

, вы не можете этого избежать, пока используете автогенерированный идентификатор – nifr

Смежные вопросы