视频学习笔录---ThinkPHP---案例2--职员管理功能

Posted jianxian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了视频学习笔录---ThinkPHP---案例2--职员管理功能相关的知识,希望对你有一定的参考价值。

【一】准备工作

(1)创建菜单,修改跳转路径

         <li>
            <a href="javascript:;" class="workerManage">职员管理</a>
            <ul>
                <li><a href="{:U(‘User/showList‘)}" class="workerManage">职员列表</a></li>
                <li><a href="{:U(‘User/add‘)}" class="workerManage">添加职员</a></li>
            </ul>
        </li>

(2)创建控制器UserController.class.php

<?php
    namespace Admin\Controller;
    use Think\Controller;
    class UserController extends Controller{
    }
?>

 

【二】职员添加

分析:控制器UserController.class.php

方法:add

模板:add.html

(1)add方法,展示添加职员的模板

public function add(){
            $this->display();
        }

(2)复制模板文件add.html到指定位置Admin/View/User/add.html,修改静态资源路径

(3)改写add方法,查询部门信息,展示到模板的下拉列表

public function add(){
            //查询部门信息
            $data = M(‘dept‘)->field(‘id,name‘)->select();
            $this->assign(‘data‘,$data);
            $this->display();
        }
所属部门:
        <select name="dept_id">
            <foreach name="data" item="fo">
                <option value="{$fo.id}">{$fo.name}</option>
            </foreach>
        </select>

(4)检查模板表单

提交单当前页面可以不写,或者当前控制器下的add方法

<form action="" method="post">
    <fieldset>
        <legend>添加职员</legend>
        <p><label for="username">用户名:</label><input type="text" name="username" id="username"></p>
        <p><label for="password">密码:</label><input type="text" name="password" id="password"></p>
        <p><label for="nickname">姓名:</label><input type="text" name="nickname" id="nickname"></p>
        <p><label for="truename">全称:</label><input type="text" name="truename" id="truename"></p>
        <p>所属部门:
            <select name="dept_id">
                <foreach name="data" item="fo">
                    <option value="{$fo.id}">{$fo.name}</option>
                </foreach>
            </select>
        </p>
        <p>
            性别:
            <label for="man">男</label><input type="radio" name="sex" value="1" id="man">
            <label for="woman">女</label><input type="radio" name="sex" value="2" id="woman">
        </p>    
        <p><label for="birthday">生日:</label><input type="date" name="birthday" id="birthday"></p>
        <p><label for="tel">联系电话:</label><input type="text" name="tel" id="tel"></p>
        <p><label for="email">邮箱:</label><input type="text" name="email" id="email"></p>
        <p><label for="remark">备注:</label><textarea name="remark" id="remark"></textarea></p>
        <p>
            <a href="javascript:;" id="submitBtn">提交</a>
            <a href="javascript:;" id="resetBtn">清空</a>
        </p>
    </fieldset>
</form>
<script src="https://cdn.bootcss.com/jquery/3.3.1/jquery.js"></script>
<script type="text/javascript">
    $(document).ready(function(){
        $(‘#submitBtn‘).on(‘click‘,function(){
            $(‘form‘).submit();
        });
        $(‘#resetBtn‘).on(‘click‘,function(){
            $(‘form‘).get(0).reset();
        });
    });
</script>

注意:

        ①清空方法记得将jquery对象转化为js的dom对象,否则无法用js的reset重置操作

        ②时间控件用的H5的type="date"

(5)改写add方法,编写处理表单代码,实现数据的接收和入库

public function add(){
            if(IS_POST){//数据提交
                // 数据对象创建方法接收数据
                $model = M(‘user‘);
                //创建数据对象(因为还有一个发布时间,在模板里没有,所以要在这里添加)
                $data = $model->create();
                //添加时间字段
                $data[‘addtime‘] = time();
                //写入数据表
                $result = $model->add($data);
                if ($result) {
                    $this->success(‘添加成功‘,U(‘showList‘),3);
                }else{
                    $this->error(‘添加失败‘);
                }
            }else{//模板展示
                //查询部门信息
                $data = M(‘dept‘)->field(‘id,name‘)->select();//select返回二维数组,find返回一维数组
                $this->assign(‘data‘,$data);
                $this->display();
            }
        }

 

【三】职员列表的展示

控制器:UserController.class.php

方法:showlist

模板:showList.html

(1)创建showList方法,展示数据和模板

public function showList(){
                //展示数据
                $data = M(‘user‘)->select();
                $this->assign(‘data‘,$data);
                //展示模板
                $this->display();
            }

(2)将模板文件showList.html复制到指定位置Admin/View/User/showList.html,修改静态资源路径

(3)将data数据展示到模板

注意:因为data是select查询返回的结果,所以是二维数组。在模板里需要遍历

<table border="1" cellspacing="0" cellpadding="10">
    <thead>
        <tr><td>序号</td><td>姓名</td><td>昵称</td><td>所属部门</td><td>性别</td><td>生日</td><td>电话</td><td>邮箱</td>
        <td>添加时间</td><td>编辑</td></tr>
    </thead>
    <foreach>
        <volist name="data" id="vol">
            <tr>
                <td>{$vol.id}</td>
                <td>{$vol.username}</td>
                <td>{$vol.nickname}</td>
                <td>{$vol.dept_id}</td>
                <td>{$vol.sex}</td>
                <td>{$vol.birthday}</td>
                <td>{$vol.tel}</td>
                <td>{$vol.email}</td>
                <td>{$vol.addtime|date=‘Y-m-d H:i:s‘,###}</td>
                <td><a href="javascript:;">编辑</a></td>
            </tr>
        </volist>
    </foreach>
</table>

 

【四】

 

以上是关于视频学习笔录---ThinkPHP---案例2--职员管理功能的主要内容,如果未能解决你的问题,请参考以下文章

视频学习笔录---ThinkPHP---thinkphp视图

视频学习笔录---ThinkPHP---thinkphp拓展之空操作

视频学习笔录---ThinkPHP---插件highcharts

视频学习笔录---ThinkPHP---TP功能类之分页

视频学习笔录---ThinkPHP---框架介绍

视频学习笔录---ThinkPHP---rbac权限管理