Создание URL без идентификатора элемента и получение нужного элемента - PullRequest
1 голос
/ 09 августа 2011

У меня была эта проблема некоторое время,

Допустим, у нас есть веб-сайт с фильмами

И у нас есть фильм с именем Test-movies123! в базе данных,

Теперь я бы сделал URL-адрес watch/test-movie123-{$id}/ и затем запросил бы БД с идентификатором

Теперь проблема в том, что идентификатора не должно быть, как я могу обойти это?если я получу test-movie123 из URL и найду его, я не найду его, потому что у него нет !, если только я не использую LIKE, но это не очень надежно ...

Кто-нибудь может предложить что-нибудь?Будет высоко ценится

Ответы [ 2 ]

4 голосов
/ 09 августа 2011

Ну, вы можете создать правило для взятия названия фильма и превращения его в слизняка. Итак, вы знаете, что вы всегда переводите заголовок в нижнем регистре, удаляете все, кроме букв, цифр и тире, и преобразуете пробелы в одну черту.

Затем сохраните это в другом столбце в вашей базе данных и убедитесь, что вы используете уникальность. Возьмите URL-адрес и выполните поиск по этому столбцу.

С этого момента вам просто нужно разобраться с тем, что произойдет, если у вас будет загружено второе видео, которое производит точно такой же фрагмент. Для этого есть несколько вариантов ... добавить слаг случайного числа, увеличить число и добавить его и т. Д.

2 голосов
/ 09 августа 2011

Для этого в вашей базе данных может быть что-то вроде primary_key как "Тест-movies123".

Представьте, что у вас есть панель управления, вы вставляете фильмы в форму. Тогда используйте название Test Movies123! чтобы сохранить его в базе данных, как в следующем примере:

id: AUTO_INCREMENT NUMBER keyname: sanityTitle ("Test Movies123!") <- <strong>это должно сохранить "test-movies123" title: "Test Movies123!" материал: "блаблабла"

примечание sanityTitle () будет вашей функцией для подготовки дружественных URL-адресов из заголовков.

Тогда ваш URL будет выглядеть смотреть / test-movie123 / используя регулярное выражение в URL или же смотреть /? id = test-movie123 raw

Вы будете искать в таблице ключ INDEXED или PRIMARY, "keyname", он выведет 1 строку со всеми вашими вещами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...