在学习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):
<?php foreach ($news as $news_item): ?>
<h2><?php echo $news_item['title'] ?></h2>
<p class="main">
<?php echo $news_item['text'] ?>
</p>
<p><a href="http://[你的域名]/index.php/news/<?php echo $news_item['slug'] ?>">View article</a></p>
而我按照教程全部做完,包括后面一部分的“创建新闻条目”,然后打开浏览器访问创建新闻页面:http://192.168.56.101/ciguestbook/index.php/news/create(部署在虚拟机里面了),随便填了测试数据提交然后跳转到新闻展示页面http://192.168.56.101/ciguestbook/index.php/news/,有鼠标右键View Article这个链接后发现slug的值是空的!
没错,就是index.php中的
<p><a href="http://192.168.56.101/ciguestbook/index.php/news/<?php echo $news_item['slug'] ?>">View article</a></p>
这一句里面的news_item['slug']是空的。对于slug本身的含义和在PHP中的含义感觉很迷惑,另外对于这里slug为空表示不解,slug既然为空为什么教程中要设定它呢?
题主别着急采纳嘛,我来给出正确答案。
我当时也很纳闷,查了一圈发现的。其实从url也可以看出来,跟在
/news
后面,不给一个唯一的表示怎么知道是哪个news嘛。首先看看表结构
说明每篇文章都有slug,再看看slug的翻译:“(标题等) 引人注意的语句,醒目的语句(或短语)”,其实就是每篇文章的导语或者简介。如果为空,说明这篇文章没有导语。
这是我的理解。