db9*_*998 37 php frameworks codeigniter
我目前正在使用CodeIgniters教程中的精彩文档.然而,有一个经常使用的术语,它被称为"slug".我经常环顾四周,找出这个术语的含义,我无法理解它是什么以及它是什么.以下是使用时间的示例:
使用此代码,您可以执行两个不同的查询.您可以获取所有新闻记录,或通过其slug获取新闻项目
小智 82
当您访问资源时,slug是URL的一部分.假设您有一个如下所示的URL,它显示系统中的所有汽车:
http://localhost/cars
Run Code Online (Sandbox Code Playgroud)
当您想要引用系统中的特定汽车时,您将提供以下URL:
http://localhost/cars/audi-a6/
Run Code Online (Sandbox Code Playgroud)
请注意URL如何仍然非常合乎逻辑,并且非常友好.在使用slug方面,这由您自行决定.上面的audi-a6字符串可能是系统中汽车的唯一标识符 - 假设您有一个包含以下字段的关系数据库:
id
car_name
car_brand
car_unique_identifier
Run Code Online (Sandbox Code Playgroud)
然后,字段car_unique_identifier将用于存储在段塞中显示的值; 在我上面用奥迪A6汽车指定的例子中,这是你的audi-a6琴弦所在的地方.
您也可以以其他方式使用它 - 例如,如果您有一个帖子控制器,其功能类似于博客.如果是URL编码的话,页面的标题可能是它的slug.对于我们的文章"最佳方法来改善搜索引擎优化",您可以提供以下网址:
http://localhosts/posts/best-ways-to-make-seo-better
Run Code Online (Sandbox Code Playgroud)
然后你将在slug上运行url_decode(),你将获得字符串最好的方法来使seo更好,你可以使用它来通过它的标题找到一个帖子.
它不需要停在那里 - 你可能决定有多个slu to来表示某些东西 - 让我们来看看BBC是如何做到的.我从今天开始随机撰写一篇文章,其中包含以下网址:
http://www.bbc.co.uk/news/world-africa-24506006
Run Code Online (Sandbox Code Playgroud)
这链接到一篇名为的文章:非洲联盟敦促ICC放弃针对领导人的案件.BBC正在这样做的方式是他们使用slug world-africa-24506006的最后一部分,即24506006来识别他们系统中的唯一条目.然后,他们最有可能使用世界非洲来表示一个职位所属的类别(尽管这可能只是一个假设,它仍然是一个有根据的猜测).
最后,让我们想象下面的DB表,用于研究论文.
id
category
title
Run Code Online (Sandbox Code Playgroud)
您可能有一个类似下面的示例.
http://localhost/papers
Run Code Online (Sandbox Code Playgroud)
此URL代表系统中当前的所有研究论文.然后,您可以通过以下slug访问所有关于物理的研究论文:
http://localhost/papers/physics
Run Code Online (Sandbox Code Playgroud)
我们的slug是物理,我们的数据库选择目前看起来像:
SELECT *
FROM papers
WHERE LOWER(papers.category) = 'physics'
Run Code Online (Sandbox Code Playgroud)
然后,您可以公开以下URL:
http://localhost/papers/physics/gravitation
Run Code Online (Sandbox Code Playgroud)
现在我们的slu is由物理和万有引力组成.我们在幕后的查询可能类似于:
SELECT *
FROM papers
WHERE LOWER(papers.category) = 'physics'
AND LOWER(papers.title) = 'gravitation'
Run Code Online (Sandbox Code Playgroud)
这允许我们唯一地识别我们系统中的条目.
所以我们反复使用slugs来过滤掉我们的信息.在示例中,当我们运行没有任何slugs的URL时:
http://localhost/papers
Run Code Online (Sandbox Code Playgroud)
我们想列出所有可用的研究论文.当我们使用物理 slug 运行URL时:
http://localhost/papers/physics
Run Code Online (Sandbox Code Playgroud)
我们想列出所有关于物理学的研究论文,从而缩小我们的研究成果.最后,当我们提供两个slu,时,我们可以唯一地识别我们系统中的一个条目.
http://localhost/papers/physics/gravitation
Run Code Online (Sandbox Code Playgroud)
我们可以用不同的方式建模吗?当然!根据我们系统的要求,我们可以对关系表进行规范化和非规范化.我们可以有一个永久链接系统,所以我们的帖子表看起来像这样:
id
title
permalink
Run Code Online (Sandbox Code Playgroud)
然后我们可能会有以下条目:
| 20013 | Gravitation | physics-gravitation-breakthrough |
Run Code Online (Sandbox Code Playgroud)
因此暴露URL:
http://localhost/papers/physics-gravitation-breakthrough
Run Code Online (Sandbox Code Playgroud)
在上面的例子中,slug 物理 - 引力 - 突破允许我们通过以下方式唯一地识别帖子:
SELECT *
FROM papers
WHERE papers.permalink = physics-gravitation-breakthrough
Run Code Online (Sandbox Code Playgroud)
小智 5
“ slug”是完全依赖于上下文的词,但是在编程中或就此问题而言,“ slug”是指URL。我们知道URL不能包含每个字符。这就是为什么当任何帖子,页面,控制器都将这些键入标题时将其子代码用作URL的原因。可能会自动得出。
因此,在一行中,slug是任何名称的URL友好版本。
| 归档时间: |
|
| 查看次数: |
37535 次 |
| 最近记录: |