一.查询数据
1.查询数据集使用(设置了数据表前缀参数):Db::name('user')->where('status',1)->select();
select 方法查询结果不存在时,返回空数组.
public function lst()
{
$cateres=\think\Db::name('cate')->select();
$this->assign('cateres',$cateres);
return $this->fetch("lst");
}
2.循环输出标签:volist
标签通常用于查询数据集(select
方法)的结果输出,通常模型的select
方法返回的结果是一个二维数组,可以直接使用volist
标签进行输出。
#在模版定义如下,循环输出用户的编号和姓名:
{volist name="list" id="vo"}
{$vo.id}:{$vo.name}<br/>
{/volist}
3.if
标签用法示例:
{if condition="($name == 1) OR ($name > 100) "} value1
{elseif condition="$name eq 2"/}value2
{else /} value3
{/if}
condition属性可以支持点语法和对象语法,例如: 自动判断user变量是数组还是对象
{if condition="$user.name neq 'ThinkPHP'"}ThinkPHP
{else /} other Framework
{/if}
4.在D:\www\youme\application\admin\view\Cate
文件夹下的lst.html
文件,列表栏目
<table class="result-tab" width="100%">
<tr>
<th width="3%">ID</th>
<th>栏目名称</th>
<th width="8%">栏目类型</th>
<th width="8%">操作</th>
</tr>
{volist name="cateres" id="vo"}
<tr>
<td>{$vo.id}</td>
<td title="{$vo.catename}"><a target="_blank" href="#" title="{$vo.catename}">{$vo.catename}</a>
</td>
<td>
{if condition="$vo.type eq 0"}列表栏目
{else /}留言板
{/if}
</td>
<td>
<a class="link-update" href="#">修改</a>
<a class="link-del" href="#">删除</a>
</td>
</tr>
{/volist}
</table>
二.删除数据
1.用助手函数删除数据
// 根据主键删除
db('user')->delete(1);
// 条件删除
db('user')->where('id',1)->delete();
2.在D:\www\youme\application\admin\controller
文件夹下,Cate.php
文件,使用助手函数删除数据.
public function del(){
$id=input('id');
if(db('cate')->delete($id)){
return $this->success('删除栏目成功! ','lst');
}
else{
return $this->error('删除栏目失败! ');
}
}
3.用数组方式传递id值
<a class="link-del" onclick="return confirm('你确定要删除该栏目吗? ')"href="{:url('del',['id'=>$vo.id])}">删除</a>
三.修改数据
1.使用助手函数查询数据
系统提供了一个db助手函数,可以更方便的查询:
db('user')->where('id',1)->find();
db('user')->where('status',1)->select();
2.如果数据中包含主键,可以直接使用此方法更新数据:
Db::name('think_user')->update(['name' => 'thinkphp','id'=>1]);
3.在D:\www\youme\application\admin\view\Cate
文件夹下新建edit.html
文件,增加隐藏域以传输数据.
<input type="hidden" name="id" value="{$cates.id}">
4.在D:\www\youme\application\admin\controller
文件夹下Cate.php
文件实现拿取数据和更新数据功能:
public function edit()
{
if(request()->isPost()){
$data=[
'id'=>input('id'),
'catename'=>input('catename'),
'keywords'=>input('keywords'),
'desc'=>input('desc'),
'type'=>input('type'),
];
if($db=\think\Db::name('cate')->update($data)){
return $this->success('修改栏目成功! ');
}
else{
return $this->error('修改栏目失败! ');
}
return;
}
$id=input('id');
$cates=db('cate')->where('id',$id)->find();
$this->assign('cates',$cates);
return $this->fetch();
}