# 创建方法
~~~php
public function read($id=null)
{
if($id!=null){
$data = Db::name('catalog')->find($id);
$this->assign('item',$data);
return $this->fetch('catalog/read_item');
}else{
$data = Db::name('catalog')->select();
$this->assign('items',$data);
return $this->fetch('catalog/read_items');
}
}
~~~
# 创建html
文件 app/home/view/catalog/read_item.html
~~~html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>读取单条数据</title>
</head>
<body>
<h1>读取单条数据</h1>
<a href="{:url('home/catalog/index')}">返回导航</a>
<p>
编号:{$item.id}<br>
名称:{$item.name}<br>
标题:{$item.title}<br>
关键字:{$item.keywords}<br>
描述:{$item.description}<br>
</p>
</body>
</html>
~~~
文件 app/home/view/catalog/read_items.html
~~~html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<title>读取列表</title>
</head>
<body>
<h1>读取列表</h1>
<a href="{:url('home/catalog/index')}">返回导航</a>
<ul>
{foreach $items as $item}
<li><a href="{:url('home/catalog/read',['id'=>$item.id])}">{$item.name}</a></li>
{/foreach}
</ul>
</body>
</html>
~~~
查看运行效果
![](https://box.kancloud.cn/ea0904e9f89ef2439cdf4b9c270da9c7_703x585.png)
向数据库内添加2条数据,并查看效果
![](https://box.kancloud.cn/1d7e3e6ee0b9dd6cbb0f0673f6cd3774_703x585.png)
![](https://box.kancloud.cn/be8252a4b0ad1f8c0f9832443095a21e_703x585.png)
![](https://box.kancloud.cn/6f1dee50acb2a9199aa8cf81406aa155_703x585.png)
![](https://box.kancloud.cn/b697f1b5b721221bb70f6ed512457996_703x585.png)
# 2级目录
修改 create_html() 方法
~~~php
public function create_html()
{
$lists = Db::name('catalog')
->where('parentid',0)
->select();
$this->assign('toplists',$lists);
return $this->fetch();
}
~~~
在对应的模板文件中添加一个选择框
~~~html
上级目录:
<select name="parentid">
<option value="0">根目录</option>
{foreach $toplists as $item}
<option value="{$item.id}">{$item.name}</option>
{/foreach}
</select><br>
~~~
删除 create() 方法的
~~~php
$data['parentid'] = 0;
~~~
这样parentid就能正确的提交上来了。
修改显示列表,让列表页支持多级菜单,修改 read() 方法
~~~php
public function read($id=null)
{
if($id!=null){
$data = Db::name('catalog')->find($id);
$this->assign('item',$data);
return $this->fetch('catalog/read_item');
}else{
$data = Db::name('catalog')
->where('parentid',0)
->select();
foreach ($data as $key => $item) {
$data[$key]['lists'] = Db::name('catalog')
->where('parentid',$item['id'])
->select();
}
$this->assign('items',$data);
return $this->fetch('catalog/read_items');
}
}
~~~
运行查看效果
![](https://box.kancloud.cn/fed999cee98930f85d32f305297c159b_703x585.png)
![](https://box.kancloud.cn/2212616b5075124f7edd4d4e11894bee_703x585.png)