Как использовать обработчик slugable, только если slug пуст?

Я использую фреймворк Symfony 3 и расширение доктрины suggable. Мне нужно сгенерировать слаг с таким кодом:

<?php
/**
 * @Gedmo\Mapping\Annotation\Slug(handlers={
 *      @Gedmo\Mapping\Annotation\SlugHandler(class="Gedmo\Sluggable\Handler\TreeSlugHandler", options={
 *          @Gedmo\Mapping\Annotation\SlugHandlerOption(name="parentRelationField", value="parent"),
 *          @Gedmo\Mapping\Annotation\SlugHandlerOption(name="separator", value="/")
 *      })
 * }, fields={"title", "code"})
 * @Doctrine\ORM\Mapping\Column(length=64, unique=true)
 */
private $slug;

Я использую TreeSlugHandler, но я хочу использовать этот обработчик, только если слаг не установлен (если он пустой), потому что обработчик переписывает слаг. Как я мог этого добиться?


person user8879564    schedule 11.12.2017    source источник
comment
Это поведение по умолчанию: слаг генерируется, только если он пуст.   -  person Massimiliano Arione    schedule 11.12.2017
comment
Вы пробовали обновляемый вариант?   -  person Juan I. Morales Pestana    schedule 12.12.2017


Ответы (1)


Вам нужно установить обновляемость на false. Документация находится здесь

Соответствующая строка:

обновляемый (необязательный, по умолчанию = true) — true, чтобы обновить слаг при изменении полей, которые можно изменить, false — в противном случае

Ex:

/**
 * @Gedmo\Slug(fields={"meta_title"}, updatable=false)
 * @ORM\Column(length=128, unique=true)
 */
private $slug = "";
person Adrien LAMOTTE    schedule 24.03.2018