php - 什么是蛞蝓?

标签 php codeigniter frameworks

我目前正在阅读其出色文档中的 CodeIgniters 教程。然而,有一个经常使用的术语,它被称为“鼻涕虫”。我环顾四周以找出该术语的含义,但我无法理解它是什么以及它的用途。下面是使用它的示例:

With this code you can perform two different queries. You can get all news records, or get a news item by its slug

最佳答案

当您访问资源时,slug 是 URL 的一部分。假设您有一个 URL,如下所示,它显示了您系统中的所有汽车:

http://localhost/cars

当您想要在系统中引用特定汽车时,您需要提供以下 URL:

http://localhost/cars/audi-a6/

请注意,该 URL 仍然非常合乎逻辑,并且对 SEO 非常友好。至于使用蛞蝓,那是你自己的判断。上面的 audi-a6 字符串可能是您系统中汽车的唯一标识符——假设您有一个包含以下字段的关系数据库:

id
car_name
car_brand
car_unique_identifier

字段 car_unique_identifier 然后将用于存储在 slug 中显示的值;在上面我用奥迪 A6 汽车指定的示例中,这是您的 audi-a6 字符串所在的位置。

您也可以以其他方式使用它——例如,如果您有一个功能类似于博客的 posts Controller 。如果页面的标题是 URL 编码的,那么它的标题可能就是它的标签。对于我们名为“让 SEO 变得更好的最佳方法”的文章,您可以提供以下 URL:

http://localhosts/posts/best-ways-to-make-seo-better

然后您将在 slug 上运行 url_decode(),您将获得字符串 best methods to make seo better,您可以使用它来找到一个通过标题发布。

不必止步于此——你可以决定用多个 slug 来代表某事——让我们看看 BBC 是如何做到的。我从今天随机获取了一篇文章,网址如下:

http://www.bbc.co.uk/news/world-africa-24506006

此链接指向一篇名为:非洲联盟敦促国际刑事法院撤销针对领导人的案件的文章。 BBC 这样做的方式是他们使用 slug world-africa-24506006 的最后一部分,即 24506006,来识别他们系统中的唯一条目。然后,他们很可能使用 world-africa 来表示帖子所属的类别(尽管这可能只是一个假设,但仍然是有根据的猜测)。

最后,让我们想象一下下面的数据库表,用于研究论文。

id
category
title

您可能有一个类似于以下示例的示例。

http://localhost/papers

此 URL 代表系统中当前的所有研究论文。然后,您将能够通过以下 slug 访问所有关于物理学的研究论文:

http://localhost/papers/physics

我们的 slug 是 physics,我们的数据库选择目前看起来像:

SELECT *
FROM papers
WHERE LOWER(papers.category) = 'physics'

然后您可以公开以下 URL:

http://localhost/papers/physics/gravitation

现在我们的 slug 由 physicsgravitation 组成。我们在后台的查询可能类似于:

SELECT *
FROM papers
WHERE LOWER(papers.category) = 'physics'
AND LOWER(papers.title) = 'gravitation'

这使我们能够唯一标识系统中的条目。

所以我们反复使用 slug 来过滤掉我们的信息。在示例中,当我们在没有任何 slug 的情况下运行 URL 时:

http://localhost/papers

我们想列出所有可用的研究论文。当我们使用 physics slug 运行 URL 时:

http://localhost/papers/physics

我们想列出所有关于物理学的研究论文,从而缩小了我们的结果范围。最后,当我们提供两个 slug 时,我们可以唯一地标识系统中的一个条目。

http://localhost/papers/physics/gravitation

我们可以对此进行不同的建模吗?当然!根据我们系统的要求,我们可以规范化和非规范化我们的关系表。我们可以有一个固定链接系统,所以我们的帖子表看起来像这样:

 id
 title
 permalink

我们可能有以下条目:

 | 20013 | Gravitation | physics-gravitation-breakthrough |

从而暴露 URL:

 http://localhost/papers/physics-gravitation-breakthrough

在上面的示例中,slug physics-gravitation-breakthrough 允许我们通过以下方式唯一识别帖子:

 SELECT *
 FROM papers
 WHERE papers.permalink = physics-gravitation-breakthrough

关于php - 什么是蛞蝓?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19335215/

相关文章:

php - 使用 Codeigniter,如何向其他开发人员 stash Paypal 凭据?

php - Codeigniter Active Record SQL 语法错误

xcode - 无法在 OSX 10.8 以下设置部署目标(错误 : dyld: Library not loaded -- Reason: Incompatible library version)

php - 也许是一个关于 html/php/sql 的简单问题

php - CakePHP 3 级深度模型关联

php - 根据条件统计一个月有多少数据

model-view-controller - 如何组织基于ColdFusion的MVC应用程序?

frameworks - websocket + node.js + 后备框架

php - 如何在不转义为 HTML 的情况下在 PHP 中正确编写 <img src>

javascript - PHP 日期输出与 fooTable 中使用 formatString 相同