在学习CI框架的时候,看的是官方用户指南的简体中文翻译。教程中出现了slug一词,没有给出翻译,感觉难以理解。
slug是在读取新闻条目的这部分出现的,这一部分教程在这里:
http://codeigniter.org.cn/user_guide/tutorial/index.html
这个教程中有这么一段代码,用来显示添加上去的新闻条目,也就是展示数据了,说是在application/views/news/index.php中的代码为(教程页面http://codeigniter.org.cn/user_guide/tutorial/news_section.html):
<code><?php foreach ($news as $news_item): ?> <h2><?php echo $news_item['title'] ?></h2> <div class="main"> <?php echo $news_item['text'] ?> </div> <p><a href="http://%5B%E4%BD%A0%E7%9A%84%E5%9F%9F%E5%90%8D%5D/index.php/news/<?php%20echo%20%24news_item%5B'slug'%5D%20?>">View article</a></p> </code>
而我按照教程全部做完,包括后面一部分的“创建新闻条目”,然后打开浏览器访问创建新闻页面:http://192.168.56.101/ciguestbook/index.php/news/create(部署在虚拟机里面了),随便填了测试数据提交然后跳转到新闻展示页面http://192.168.56.101/ciguestbook/index.php/news/,有鼠标右键View Article这个链接后发现slug的值是空的!
没错,就是index.php中的
<code><p><a href="http://192.168.56.101/ciguestbook/index.php/news/<?php%20echo%20%24news_item%5B'slug'%5D%20?>">View article</a></p> </code>
这一句里面的news_item['slug']是空的。对于slug本身的含义和在PHP中的含义感觉很迷惑,另外对于这里slug为空表示不解,slug既然为空为什么教程中要设定它呢?
在学习CI框架的时候,看的是官方用户指南的简体中文翻译。教程中出现了slug一词,没有给出翻译,感觉难以理解。
slug是在读取新闻条目的这部分出现的,这一部分教程在这里:
http://codeigniter.org.cn/user_guide/tutorial/index.html
这个教程中有这么一段代码,用来显示添加上去的新闻条目,也就是展示数据了,说是在application/views/news/index.php中的代码为(教程页面http://codeigniter.org.cn/user_guide/tutorial/news_section.html):
<code><?php foreach ($news as $news_item): ?> <h2><?php echo $news_item['title'] ?></h2> <div class="main"> <?php echo $news_item['text'] ?> </div> <p><a href="http://%5B%E4%BD%A0%E7%9A%84%E5%9F%9F%E5%90%8D%5D/index.php/news/<?php%20echo%20%24news_item%5B'slug'%5D%20?>">View article</a></p> </code>
而我按照教程全部做完,包括后面一部分的“创建新闻条目”,然后打开浏览器访问创建新闻页面:http://192.168.56.101/ciguestbook/index.php/news/create(部署在虚拟机里面了),随便填了测试数据提交然后跳转到新闻展示页面http://192.168.56.101/ciguestbook/index.php/news/,有鼠标右键View Article这个链接后发现slug的值是空的!
没错,就是index.php中的
<code><p><a href="http://192.168.56.101/ciguestbook/index.php/news/<?php%20echo%20%24news_item%5B'slug'%5D%20?>">View article</a></p> </code>
这一句里面的news_item['slug']是空的。对于slug本身的含义和在PHP中的含义感觉很迷惑,另外对于这里slug为空表示不解,slug既然为空为什么教程中要设定它呢?
题主别着急采纳嘛,我来给出正确答案。
slug就是WordPress系统里的语义化的可自定义文章名式URL
我当时也很纳闷,查了一圈发现的。其实从url也可以看出来,跟在 /news
后面,不给一个唯一的表示怎么知道是哪个news嘛。
首先看看表结构
<code class="lang-sql">CREATE TABLE news ( id int(11) NOT NULL AUTO_INCREMENT, title varchar(128) NOT NULL, slug varchar(128) NOT NULL, text text NOT NULL, PRIMARY KEY (id), KEY slug (slug) ); </code>
说明每篇文章都有slug,再看看slug的翻译:“(标题等) 引人注意的语句,醒目的语句(或短语)”,其实就是每篇文章的导语或者简介。如果为空,说明这篇文章没有导语。
这是我的理解。