codeigniter 在代码点火器中使用弹头

b1zrtrql  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(173)

我听说过有人用slugs来生成干净的url。我不知道它是如何工作的。目前我有一个codeigniter网站,它生成的url是这样的

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

据我所知,通过维护一个slug字段,可以获得类似于

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

这是怎么做到的?特别是在提到 codeigniter 时?

dnph8jn4

dnph8jn41#

我只是将鼻涕虫存储在数据库表中名为slug的列中,然后找到包含鼻涕虫的帖子,如下所示:

public function view($slug)
{
    $query = $this->db->get_where('posts', array('slug' => $slug), 1);

    // Fetch the post row, display the post view, etc...
}

另外,要从帖子标题中轻松导出slug,只需使用URL帮助器的url_title()

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

还有一点好处:您可能希望对slug列实现一个唯一的键约束,以确保每个帖子都有一个唯一的slug,这样CodeIgniter应该查找哪个帖子就不会有歧义。当然,您可能应该首先为帖子指定唯一的标题,但这样做会 * 强制 * 该规则,并防止应用程序出错。

bq3bfh9z

bq3bfh9z2#

致我的ES朋友们,请从Text Helper中使用以下命令删除重音字符:

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

相关问题