Использование слизней в кодеригенере

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

www.site.com/index.php/blog/view/7 

Из того, что я понимаю, поддерживая поле пули, можно достичь таких URL-адресов, как

 www.site.com/index.php/blog/view/once-upon-a-time 

Как это делается? Особенно применительно к кодеригнитеру?

Я просто храню пули в моей таблице базы данных, в столбце с именем slug , а затем нахожу сообщение с slug, например:

 public function view($slug) { $query = $this->db->get_where('posts', array('slug' => $slug), 1); // Fetch the post row, display the post view, etc... } 

Кроме того, чтобы легко получить пули из вашего заголовка, просто используйте url_title() для URL-адреса помощника URL:

 // Use dashes to separate words; // third param is true to change all letters to lowercase $slug = url_title($title, 'dash', true); 

Небольшой бонус: вы можете реализовать уникальное ограничение ключа для столбца slug , что гарантирует, что каждый столбец имеет уникальный слизень, поэтому он не является двусмысленным, который должен искать PostIgniter. Конечно, вы, вероятно, должны вначале давать уникальные заголовки своих публикаций, но, применяя это, применяете правило и препятствуйте тому, чтобы ваше приложение зависало.

Вы можете использовать CI Slug Library Эрика Барнса:

https://github.com/ericbarnes/CodeIgniter-Slug-Library

Для моих друзей ES, удалите акцентированные символы, используя это, из Text Helper:

  $string = 'áéíóú ÁÉÍÓÚ'; $slug = url_title(convert_accented_characters($string), 'dash', true)); echo $slug; //aeiou-AEIOU