Задать вопрос
@Narts

Как правильно генерировать ЧПУ?

Всем привет!
Подскажите, как лучше реализовать генерацию ЧПУ.

С переводом русской строки в транслит, проблем нет, но есть возможность (хоть и очень-очень маленькая) иметь две одинаковые записи с одним юрлом (когда название постов будет одинаковым (посты создают юзеры, и повторение названий вполне возможно)). Есть идея "разбавлять" транслит айдишником запись (site.ru/blog/view/23-sipmle-post), но как лучше получать этот айдишник?

Вариантов два:
1. При генерации урла брать айдишник последней строки в бд и присоединять его к транслиту (но тогда могут быть случаи, когда посты, добавленные в одно время будут иметь одинаковый айди в урле, хоть и транслит будет разный. Понимаю, что вероятность очень-очень мала, но все же)
2. При добавлении поста в бд пропускать "генерацию" урла, а затем брать айди уже созданного поста, генерировать урл и обновлять запись в бд (обновлять урл).

Как лучше поступить?
И может вообще не стоит загоняться с этими маловероятными моментами? Но хочется все-таки чтобы перфекционист во мне был доволен
  • Вопрос задан
  • 130 просмотров
Подписаться 1 Простой 3 комментария
Помогут разобраться в теме Все курсы
  • Skillbox
    Веб-разработчик на PHP
    9 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter Куратор тега PHP
та еще зажигалка...
Получить все схожие ЧПУ "SELECT slug FROM table WHERE slug = '{$slug}' OR ':slug' LIKE '{$slug}%'"
ну и если нет прямого совпадения используем исходный slug/чпу, если есть - циклом добавляем к slug итеративно увеличивающиеся номера до теп пор пока попадаются совпадения т.е.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
IT ATLAS Москва
от 250 000 до 500 000 ₽