it-swarm.com.ru

Использование слагов в codeigniter

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

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

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

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

Как это сделать? Особенно по отношению к codeigniter?

12
esafwan

Я просто храню слагов в своей таблице базы данных, в столбце с именем 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, которое гарантирует, что каждое сообщение имеет уникальный фрагмент, чтобы не было неоднозначно, какой пост должен искать CodeIgniter. Конечно, вы, вероятно, должны в первую очередь давать своим постам уникальные заголовки, но их размещение обеспечивает соблюдение правила и предотвращает испорчение вашего приложения. ,.

48
BoltClock

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

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

2
alpere

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

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

Создание слаг страницы в codeigniter

создать помощник с именем slug_helper.php

<?php

if (!function_exists('create_slug')) {
function create_slug($string)
{
    $slug = trim($string);
    $slug = strtolower($slug);
    $slug = str_replace(' ', '-', $slug);

    return $slug;
} } ?>


autoload
$autoload['helper'] = array('slug');

 Controller
 $data = array(
            'title' => $this->input->post('title'),
            'content' =>$this->input->post('content'),
            'slug' => create_slug($this->input->post('title'))
        ); 

 $insert_page = $this->Admin_model->insert_page($data);
0
Hafiz Adil