对于用户信息列表,将其作为表单在页面中按页显示出来。在本项目中,将用户按每页15条记录展示出来,并且按最后互动时间降序排列,相关代码如下。
1 public function _initialize 2 { 3 // 初始化时检查用户登录状态 4 if(!Session::has('username')){ 5 $this->redirect('login/index'); 6 } 7 } 8 9 public function index10 {11 // 查询用户数据,并且每页显示15条数据12 $list = Db::name('user')->order('heartbeat desc')->paginate(15);13 14 // 把分页数据赋值给模板变量list15 $this->assign('list', $list);16 // 渲染模板输出17 return $this->fetch;18 }
模板文件中显示用户信息及分页的代码如下。
1 <p> 2 <ul> 3 <a href="{:url('User/accesstoken')}">Access Token</a> 4 <a href="{:url('User/updateList')}">更新列表</a> 5 <a href="{:url('User/updateInfo')}">更新数据</a> 6 </ul> 7 8 </p> 9 <p>10 <table cellspacing="0">11 <thead>12 <tr>13 <th >ID</th>14 <th >微信OpenID</th>15 <th >昵称</th>16 <th >性别</th>17 <th >地区</th>18 <th >来源</th>19 <th >标签</th>20 <th >头像</th>21 <th >关注时间</th>22 <th >积分</th>23 <th >最后互动</th>24 <th >操作</th>25 </tr>26 </thead>27 <tbody>28 {volist name="list" key="k"}29 <tr>30 <td >{$user.id}</td>31 <td >{$user['openid']}</td>32 <td >{$user['nickname']}</td>33 <td >{$user['sex']}</td>34 <td >{$user['country']}{$user['province']}{$user['city']} {$user['district']}</td>35 <td >{$user['scene']}</td>36 <td >{$user['tagid']}</td>37 <td ><img src="{$user.headimgurl}" height= "25px"></td>38 <td >{if condition="$user['subscribe']==''"}{else/} {$user['subscribe']|date="Y-m-d H:i:s",###}{/if}</td>39 <td >{$user['score']}</td>40 <td >{if condition="$user['heartbeat']==''"}{else/} {$user['heartbeat']|date="Y-m-d H:i:s",###}{/if}</td>41 <td >42 <a href="javascript:confirm_delete('{:url('User/delete',array('id'=> $user['id']))}')">删除</a>43 </td>44 </tr>45 {/volist}46 </tbody>47 </table>48 <p>{$list->render}</p>49 </p>
本项目对ThinkPHP框架的分页功能进行了改造,增加了分页功能中的参数显示,最终的用户列表分页显示页面如图25-6所示。
图25-6 用户信息列表