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

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

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

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

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

Как это делается? Особенно в отношении кодовоза?

Ответ 1

Я просто храню пули в моей таблице базы данных, в столбце под названием 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:

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

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

Ответ 3

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

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