准备工作:
请先配置好inc目录下的数据库连接信息,然后执行以下sql语句创建必要的实例数据表test/user。
在usr/model文件夹下创建User.php,内容如下
<?php
namespace Model;
use Lib;
class User extends Lib\DbBase{
function __construct(){
$this->setName('user');//设置对应的表名,重要!如需联表查询,请使用$this->query($sql)方法
}
function delBy($id)
{
if($this->where("iid in('".$id."')")->remove()){
return "ok";
}else{
return "error";
}
}
function getlist($start,$ps)
{
return $this->where("iid>0")->desc("iid")->limit($start,$ps)->page();
}
function getuser($username,$userpass)
{
return $this->where("username='".$username."' and userpass='".$userpass."'")->select();
}
function save($iid,$pass)
{
$arr = array("userpass"=>$pass);
return $this->where("`iid`=$iid")->kv($arr)->update();
}
function add($username,$userpass)
{
$arr = array(
"username"=>$username,
"userpass"=>$userpass);
$iid = $this->kv($arr)->add();
return $iid;
}
}
?>
在Action方法里这样调用
function Users()
{
$user = new Model\User;
$pagesize = 10;
$cur = isset($_GET["page"]) && is_numeric($_GET["page"]) ? $_GET["page"] : 1;
$start = ($cur-1) * $pagesize;
$arr = $user->getlist($start,$pagesize);
$total = $arr["foundrows"];
$list = $arr["data"];
$pager = new Lib\Pager($cur,$total,$pagesize);
$this->set("list",$list);
$this->set("pager", $pager);
return $this->view("Users");
}
在模板里这样访问数据库数据
<table class='table'>
<tr>
<th>编号</th>
<th>用户名</th>
<th>用户名长度</th>
<th>用户名截取</th>
</tr>
{foreach($list as $item)}
<tr>
<td>{$item->iid()}</td>
<td>{$item->username()} </td>
<td>{org.strlen($item->username())} </td>
<td>{helper.cubstr($item->username(),0,3)} </td>
</tr>
{end}
</table>
<ul class="pagination">
<li><a href="home/users?page=1">首页</a></li>
<li><a href="home/users?page={$pager->prev}">上一页</a></li>
<li><a href="home/users?page={$pager->next}">下一页</a></li>
<li><a href="home/users?page={$pager->totalpages}">尾页</a></li>
<li>
<select class="form-control" style="width:80px;float:left;border-left:none;border-radius:0;" onchange="location.href='home/users?page='+this.value">
{for($i=1;$i <=$pager->totalpages;$i++)}
<option value="{$i}" {$i==$pager->cur?'selected':''}>第{$i}页</a>
{end}
</select>
</li>
<li><span> 共 {$pager->totalpages} 页 / {$pager->total}条记录 </span></li>
</ul>
注意上面的语句
{$item->username()}
实际访问的是数据库记录的字段username字段值,请注意跟一般对象方法区别一下