Shopaholic заставляет slug быть уникальным и создает несколько страниц с числовыми суффиксами

#octobercms

#octobercms

Вопрос:

Я использую october и shopaholic. Например, у меня есть slug «тыквы» в моей категории «Хэллоуин». Итак, у меня есть URL: /hallowenn/pumpkins/ . Когда я создаю другой слизень «тыквы», в другой категории (игрушки), shopaholic заставляет slug превращаться в тыквы-2. Более того — у меня есть /toys/punkins-2/ и /toys/pumpkins/ . Последняя страница содержит неправильные дополнительные поля и прочее. Это нормальное поведение для october shopaholic? Хорошая ли идея исправить это с помощью исправления перед сохранением / после бритья для модели продукта? Спасибо.

Ответ №1:

Да, это ожидаемое поведение с автоматически сгенерированными слагами. Ожидается, что слагаемые поля будут уникальными, так что с помощью только этой части информации вы сможете получить правильную модель. Вы можете вручную установить поле slug в своем коде, т.Е.:

 $category = new Category;
$category->name = 'Pumpkins';
$category->slug = 'pumkins';
$category->save(); // Slug will not be generated
  

Тем не менее, я не смотрел на код Shopaholic, поэтому я не уверен, что это будет безопасно делать. Я бы рекомендовал придерживаться ограничения или использовать другое решение для перезаписи URL-адресов, например Apache Rewrties.

https://octobercms.com/docs/database/traits#sluggable