视频学习笔录---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) default ‘0‘ comment‘是否存在附件‘,
    content text comment‘公文内容‘,
    author varchar(40) not null comment‘作者‘,
  addtime int(11) default null comment‘添加时间‘,
    primary key(id)
)engine=myisam default charset=utf8;

(2)创建控制器(公文document)

控制器:DocController.class.php

方法:showList   add

模板:showList.html   add.html

控制器DocController.class.php

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

(3)创建二级导航

修改模板文件Index/index.html,修改出公文管理的导航菜单

         <li>
            <a href="javascript:;" class="documentManage">公文管理</a>
            <ul>
                <li><a href="{:U(‘Doc/showList‘)}" class="documentManage">公文列表</a></li>
                <li><a href="{:U(‘Doc/add‘)}" class="documentManage">添加公文</a></li>
            </ul>
        </li>

列表方法还是showList,添加方法还是add,即方法名不变。只修改控制器即可

(4)公文添加功能

控制器:DocController.class.php

方法:add(操作分两部分:模板展示和数据操作)

模板:add.html

①控制中创建add方法

展示模板文件:

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

②将模板文件add.html复制到指定位置,并换掉静态资源路径

③检查表单

注意:

1. 因为表单需要提交附件,所以需要声明提交数据类型不光有字节流,还有二进制流。

enctype="multipart/form-data"

2. 跟文件相关的字段有三个filepath、filename、hasfile三个

3. 文件上传域的type类型file

4. 表单提交,jquery提交。绑定a点击事件

<form action="" method="post" enctype="multipart/form-data">
    <fieldset>
        <legend>添加公文</legend>
            <p><label for="title">标题:</label><input type="text" name="title" id="title"></p>
            <p><label for="filename">附件</label><input type="file" name="filename" id="filename"></p>
            <p><label for="author">作者</label><input type="text" name="author" id="author"></p>
            <p><label for="content">内容:</label><textarea name="content" id="content"></textarea></p>
            <div>
                <a href="javascript:;" id="submitBtn">提交</a>
                <a href="javascript:;" id="resetBtn">清空</a>
            </div>
    </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>

④先不考虑文件上传,将其他几个字段实现入表保存

public function add(){
            if(IS_POST){//处理提交
                // 接收除了file外其他字段,因为file无法通过post接收
                $post = I(‘post.‘);
                //补全addtime字段
                $post[‘addtime‘]=time();
                //实例化模型
                $model = M(‘doc‘);
                $result = $model->add($post);
                //判断保存结果
                if($result){
                    $this->success(‘添加成功‘,U(‘showList‘),3);
                }else{
                    $this-error(‘添加失败‘);
                }
            }else{//展示模板
                $this->display();
            }

        }

添加结果:

不考虑文件上传的前提下,其他字段上传已经完成

(5)

.

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

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

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

高仿新闻类APP频道管理功能,ItemTouchHelper的实践

转载请标明出处: http://blog.csdn.net/iamzgx/article/details/52843653 在上篇博客 简单仿TabLayout实现个性化Tab,让Tab展现多样化,通过HorizontalScrollView实现了类似TabLayout的功能,并且进行了红点提醒,数字提醒的拓展功能.这种功能在新闻类APP是很常见的,还有一种很常见的功能在上一篇博客结尾也提到过,也就是频道管理的功能.以常用的今日头条为例,频道管理功能效果图如下 仔细玩下这里的功能,这里最难的点应

视频学习笔录---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---案例2--职员管理功能

[一]准备工作 (1)创建菜单,修改跳转路径 <li> <a href="javascript:;" class="workerManage">职员管理</a> <ul> <li><a href="{:U('User/showList')}" class="workerManage">职员列表</a></li> <li>

视频学习笔录---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. 空操作方

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

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

黑 马 程 序 员_视频学习总结&lt;Objective-C&gt;----01 面向对象思想、类和对象、面向对象方法

---------------------- ASP.Net+Unity开发..Net培训.期待与您交流! ---------------------- 一.面向对象 1. 面向对象和面向过程思想区别 OC为面向对象.C为面向过程.实质是解决问题的两种不同的思想.面向过程关注的是步骤,面向对象关注的是解决问题需要的对象. 2. 常用术语 面向过程:Procedure Oriented面向对象:Object Oriented 简称OO面向对象编程:Object OrientedProgrammin

thinkphp功能类之Upload.class.php

Thinkphp 中常用功能类(Upload.class.php)构造参数$config = array( 'mimes' => array(), //允许上传的文件MiMe类型 'maxSize' => 0, //上传的文件大小限制 (0-不做限制) 'exts'' => array('jpg', 'gif', 'png', 'jpeg');// 设置附件上传类型 'rootPath' => './Uploads/', //保存根路径 'savePath' => '', /

TP thinkphp 权限管理功能

目前,在tp框架中做权限管理 分rbac(老)与auth(推荐)认证方式: 老的tp版本中封装的是rbac认证: 新一点的都开始使用auth方式管理了.推荐使用此方式: 实现步骤一:引入类库Auth.class.php 实现步骤二:创建数据表 a.菜单表 CREATE TABLE `wifi_admin_nav` ( `id` int(11) unsigned NOT NULL AUTO_INCREMENT COMMENT '菜单表', `pid` int(11) unsigned DEFAUL