视频学习笔录---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>

【四】

原文地址:https://www.cnblogs.com/jianxian/p/8685945.html

时间: 2024-08-29 21:43:17

视频学习笔录---ThinkPHP---案例2--职员管理功能的相关文章

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

[一]概论 (1)简介 rbac(role based access controal),全称基于用户组/角色的权限控制. (2)概况 目前来说,一般项目有两种权限管理方式①传统方式:②rbac方式.下面依次介绍下 [二]传统模式与RBAC模式对比 (1)传统权限分配方式 典型特征:将权限和用户挂钩,直接将权限绑定到用户.例如ecs电商管理平台的人员权限分配 缺点:①效率上较低:②设置权限时没有统一标准.所以上述权限分配方式,在大型网站不会使用 (2)RBAC权限管理方式 在使用时有两种体现方式

学习笔记之rpm程序包管理功能解析

Rpm包管理功能全解 软件包管理的功能:将编译好的程序的各组成文件打包成一个或几个程序包文件,为了方便的实现程序包的安装.升级.卸载.查询.校验.数据库维护. 下面我们来看看RPM包管理的解析 Rpm包在redhat和S.U.S.E中有很大的应用 我们接下来就以centos系统中rpm包的管理做一些详细的功能解析 使用yum(rhel系列)安装时可以自动解决依赖关系d rpm包命名格式: name-VERSION-release.arch.rpm VERSION:major.minor.rele

视频学习笔录---ThinkPHP---TP功能类之公文管理功能

[一]准备工作 (1)创建数据表 表名:sp_doc create table sp_doc( id int(11) not null auto_increment, title varchar(50) not null comment'公文标题', filepath varchar(255) default null comment'附件存储路径', filename varchar(255) default null comment'附件原名', hasfile smallint(1) de

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

(1)核心 数据分页通过limit语法实现 (2)分页类 ThinkPHP里系统封装好了分页类:Page.class.php (3)代码分析 位置:Think/Page.class.php, ①查看相关属性 namespace Think; class Page{ //对外开放属性 public $firstRow; // 起始行数 public $listRows; // 列表每页显示行数 limit(start,rows) public $parameter; // 分页跳转时要带的参数 p

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

[一]概论 (1)介绍 基于jquery开发的国外图标插件,统计图,折线图,饼状图等常常用到. 国内也有一款类似插件echarts,由百度开发. (2)官网:www.highcharts.com             爱好者编写集成的官网:www.hcharts.cn 官网的下载地址:https://www.highcharts.com/products/highcharts demo网址:www.highcharts.com/demo (3)支持特效demo:3D.仪表盘.折现.类心电图实时

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

[一]概论 (1)定义 空操作指系统在找不到指定操作方法的时候.会定位到空操作方法 / 控制器来执行,利用这个机制,我们可以实现错误页面的自定义和URL的优化 (2)场景 常用于错误页面的自定义 (3)一般的系统自带的错误页面分两种 ①调试 / 开发阶段:会显示出错误信息.错误位置.当前TP版本 ②生成阶段:显示错误提示.TP版本.安全性相对于之前有所提高,但用户还是较差 (4)空操作 针对以上情况,这时便可以用空操作的机制进行错误页面美化 (5)说明------针对方法和控制器 1. 空操作方

黑 马 程 序 员_视频学习总结&lt;Objective-C&gt;----04 内存管理、protocol、block、ARC

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.内存管理 1.为什么要用内存管理: 移动设备的内存极其有限,每个app所能占用的内存是有限制的.当app所占用的内存较多时,系统会发出内存警告,这时得回收一些不需要再使用的内存空间.比如回收一些不需要使用的对象.变量等 2.管理范围: 任何继承了NSObject的对象,对其他基本数据类型(int.char.float.double.stru

javascript入门视频第一天 小案例制作 零基础开始学习javascript

JavaScript 是我们网页设计师必备的技能之一.我们主要用javascript来写的是网页特效.我们从零基础开始学习javascript入门. 但是,好的同学刚开始不知道怎么学习,接触js,因此,小强老师给大家写了这篇入门的javascript文章.从零基础开始学习js,使大家入门更简单,希望大家喜欢.JavaScript是一种脚本语言. 也是我们web网络中最为流行一种脚本语言.脚本语言:     1.不是独立存在的.需要依附.js就是依附在浏览器中.     2.脚本语言也是语言,也有

Linux 程序设计学习笔记----POSIX 文件及目录管理

转载请注明:http://blog.csdn.net/suool/article/details/38141047 问题引入 文件流和文件描述符的区别 上节讲到ANSI C 库函数的实现在用户态,流的相应资源也在用户空间,但无论如何实现最终都需要通过内核实现对文件的读写控制.因此fopen函数必然调用了对OS的系统调用.这一调用在LINUX下即为open, close, read, write等函数.这些都遵循POSIX标准. so,在linux系统中是如何通过POSIX标准实现对文件的操作和目