【发布时间】:2019-03-18 00:58:18
【问题描述】:
我正在使用 Codeigniter 3.1.8 和 Bootstrap 4 开发一个基本的博客应用程序。posts 表有一个 slug 列,我打算用它来制作 SEO 友好的 URL。
因为每个帖子的 slug 都将成为其 URL 的一部分,所以slug 列当然是唯一的。我使用 CI 的 url_title() 方法来从帖子标题中删除 slug:
$slug = url_title($this->input->post('title'), 'dash', TRUE);
鉴于上述情况,当两个帖子的标题完全相同(“谁爱蝴蝶?”)时,很明显会出现问题:
Duplicate entry 'who-loves-a-butterfly' for key 'slug'
如果需要,我需要一种方法让重复的标题帖子生成一个“编号”的 slug:“who-loves-a-butterfly-1”等等。
Codeigniter 3 文档没有为其url_title() 方法提供这种方法?有没有办法可以修改它或替代它?
【问题讨论】:
-
据我了解,您的问题是数据库中的重复键。
url_title只需将字符串转换为 url 格式,对数据库不做任何事情。您必须编写一个自定义函数来检查slug是否存在于 DB 上。 -
Nonce 蛞蝓你就是金子
标签: php codeigniter slug slugify