Что такое слизняк?

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

С помощью этого кода вы можете выполнять два разных запроса. Вы можете получить все записи новостей или получить новость по ее слизу

Slug является частью URL-адреса при обращении к ресурсу. Скажем, у вас есть URL-адрес, такой как приведенный ниже, который отображает все автомобили в вашей системе:

http://localhost/cars 

Когда вы захотите ссылаться на конкретный автомобиль в своей системе, вы должны указать следующий URL:

 http://localhost/cars/audi-a6/ 

Обратите внимание, что URL-адрес по-прежнему очень логичен и очень дружелюбен к SE. С точки зрения использования пули, это по вашему усмотрению. Строка audi-a6 выше может быть уникальным идентификатором для автомобиля в вашей системе – предположим, что у вас есть реляционная база данных со следующими полями:

 id car_name car_brand car_unique_identifier 

Поле car_unique_identifier затем будет использоваться для хранения значений, отображаемых в пуле; в примере, который я указал выше, с автомобилем Audi A6, здесь будет жить ваша строка audi-a6 .

Вы можете использовать его и другими способами – например, если у вас есть контроллер сообщений , который работает как блог. Заголовок для страницы может быть slug для него, если он закодирован в URL. В нашей статье «Лучшие способы сделать SEO лучше» вы можете указать следующий URL:

 http://localhosts/posts/best-ways-to-make-seo-better 

Затем вы запустите url_decode () в slug, и вы получите строку лучших способов сделать seo лучше , что вы можете использовать, чтобы найти сообщение через его заголовок.

Это не нужно останавливаться на достигнутом – вы можете решить, что несколько слизней представляют что-то – давайте посмотрим, как это делает BBC. Сегодня я взял случайную статью, которая имеет следующий URL:

 http://www.bbc.co.uk/news/world-africa-24506006 

Это связано со статьей под названием: « Африканский союз» призывает МУС отказаться от дел против лидеров . То, как BBC это делает, заключается в том, что они используют последнюю часть мира slug -africa-24506006 , которая равна 24506006 , чтобы идентифицировать уникальный элемент в своей системе. Затем они, скорее всего, используют мировую африку для обозначения категории, которой принадлежит пост (хотя это может быть только предположением, это все еще образованное предположение).

Наконец, давайте представим следующую таблицу DB для исследовательских работ.

 id category title 

У вас может быть пример, который работает так, как показано ниже.

 http://localhost/papers 

Этот URL-адрес представляет все исследовательские документы, которые в настоящее время находятся в системе. Затем вы сможете получить доступ ко всем исследовательским работам по физике с помощью следующей пули:

 http://localhost/papers/physics 

Наш слизень – физика , и наш выбор базы данных в настоящее время выглядит примерно так:

 SELECT * FROM papers WHERE LOWER(papers.category) = 'physics' 

Затем вы можете указать следующий URL-адрес:

 http://localhost/papers/physics/gravitation 

Теперь наша пуля состоит из физики и гравитации . Наш запрос за кулисами может выглядеть примерно так:

 SELECT * FROM papers WHERE LOWER(papers.category) = 'physics' AND LOWER(papers.title) = 'gravitation' 

Это позволяет нам однозначно идентифицировать запись в нашей системе.

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

 http://localhost/papers 

Мы хотели перечислить все имеющиеся исследовательские документы. Когда мы запустили URL-адрес с помощью физического пули:

 http://localhost/papers/physics 

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

 http://localhost/papers/physics/gravitation 

Можем ли мы по-другому моделировать это? Конечно! В зависимости от требований нашей системы мы можем нормализовать и денормализовать наши реляционные таблицы. Мы могли бы иметь систему permalink на месте, чтобы таблица наших сообщений выглядела так:

  id title permalink 

Тогда у нас могла бы быть следующая запись:

  | 20013 | Gravitation | physics-gravitation-breakthrough | 

Таким образом, выставляя URL-адрес:

  http://localhost/papers/physics-gravitation-breakthrough 

В приведенном выше примере прорыв физики-гравитация-прорыв позволяет нам однозначно идентифицировать сообщение через:

  SELECT * FROM papers WHERE papers.permalink = physics-gravitation-breakthrough 

«slug» является полностью зависимым от контекста словом, но в программировании или, поскольку этот вопрос вызывает озабоченность, здесь «slug» относится к URL-адресу. Мы знаем, что URL-адрес не может содержать буквы верхнего регистра, специальные символы, смешанный регистр и т. Д., Поэтому, когда любой пост, страница, контроллер имеют этот тип заголовка, поэтому его slug используется в качестве URL-адреса. Который может быть автоматически получен. Таким образом, в одной строке slug – это дружественная URL-адрес любого имени.

Все приведенные выше ответы верны, но я хочу ответить непосредственно на вопрос. Slug в примере с Codeigniter указывает на URL-адрес « новости ». Если у вас нет «новостей» в качестве вашего пула или пули в вашей базе данных, и вы запустите этот URL-адрес в своем браузере, «index.php / news / view» вернет ошибку 404_page, которая не найдена. Я столкнулся с этой проблемой, пока не прочитал приведенные выше ответы, которые дали мне понимание того, что означает Слайг. Я изменяю свой slug на новости в таблице базы данных. Slug – как указатель.