管理员添加编辑与软删除的实现:... 登录

下一节课程: 班级管理中的数据表与模型设计:关联查询原理 (15173次播放)

5 秒后自动播放下一节
  重新观看
介绍 >

ThinkPHP5实战之[教学管理系统]

难度:高级 共31节 697145次学习

新课:PHP零基础(CMS开发)教学!

立即报名
章节 评论 笔记 课件
第1章 开发环境搭建[可跳过]

PHP工具箱的下载与启动

04分钟13秒

官网下载ThinkPHPH5框架源码的方法

03分钟47秒

Git下载ThinPHP5框架源码的方法

09分钟05秒
第2章 模板引入与继承

模板下载与项目创建:推荐使用PHP工具箱

07分钟05秒

模板导入与资源文件路径替换:从首页开始

06分钟37秒

模板分离与公共文件的导入:为模板继承做好准备

07分钟55秒

模板继承与区块设计:父模板与子模板创建规则[重点]

08分钟32秒

使用标签简化项目外部资源的引入:统一导入提高效率

03分钟45秒
第3章 管理员登陆与验证[重点]

登陆模板的导入与渲染:关注模板导入流程

03分钟39秒

创建管理员用户数据表

03分钟18秒

Ajax数据提交与验证码处理:用户体验至上

07分钟58秒

管理员登陆与验证:验证规则与查询结果返回

16分钟11秒

注销登陆:用session来实现

05分钟10秒

如何检测登陆状态和防止重复登陆:用公共控制器实现

06分钟17秒
第4章 管理员管理

管理员管理功能简介:推荐先看一下

08分钟21秒

完善管理员数据表设计:添加新字段适应业务需求

03分钟15秒

实现首页模板:系统变量与请求变量的获取方式

09分钟16秒

管理员列表与基本功能实现:前端到后端,权限控制与CURD实现

18分钟46秒

管理员添加编辑与软删除的实现:Ajax验证与数据恢复

14分钟17秒
第5章 班级管理功能[重点]

班级管理中的数据表与模型设计:关联查询原理

07分钟29秒

班级列表展示与状态修改:模型查询

09分钟27秒

班级信息编辑功能的实现:模板渲染与逻辑处理

04分钟05秒

班级添加功能的实现:模板渲染与逻辑处理

05分钟52秒

班级信息的软删除与恢复功能:世上也有后悔药

06分钟24秒
第6章 教师管理功能

教师数据表模型设计与模板渲染

05分钟43秒

用户密码自动修改的Bug修复:编辑时密码未做修改时会出现

02分钟47秒

教师管理中的编辑添加与软删除功能:CURD操作

08分钟55秒
第7章 学生管理功能[重点]

学-生-数-据表与模型设计:与班级表关联

03分钟10秒

学生信息的分页显示技术:非常实用

05分钟53秒

学生-数-据的增删改查操作:CURD总结

04分钟29秒
第8章 课程总结[可跳过]

课程总结:编程的心得体会分享

02分钟18秒

全部评论我要评论

  • 天蓬老师

    天蓬老师6年前

    真是众口难调,有的还认为讲的简单了,有的认为跨度过大,理解起来有难度。 既然都学到了框架开发了,相信PHP原生开发经验应该有一些了。并且,如果想用TP5框架开发,至少要把官方手册看一遍吧,如果不想看手册,至少把本站的ThinkPHP5基础教学视频看一下吧,也是我录的。完了,你再看这个教程,会觉得很流畅的,应该不会觉得太突兀。

    回复
    12

  • 小重耳

    你把你偷偷写的那些功能录下来,哪怕你不说一句话,我看着视频慢慢跟着改也行,现在一下子改那么多,反正我是接受不了

    小重耳 · 4年前
  • 車*不息

    車*不息6年前

    老师,后面几节课的教学方式真的好吗? 有点跟不上, 太快啦

    回复
    2

  • 塞班。via

    塞班。via3年前

    大家可以把 edituser 方法 改成这样的 虽然我不会定义success 的弹窗提示 但是我这个方法修改数据 没问题,就是会提示个undefined public function update() { try { // 接收数据,获取要更新的关键字信息 $id = Request::instance()->

    回复
    0

  • phpcn_u31643

    phpcn_u316433年前

    管理员添加,点击提价无反应。打开开发者模式,提示接受数据多了一个参数,其实就是url地址。这是apache的原因导致的,可以通过修改.htaccess文件解决。将正常的该文件中的 RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L] 注释掉,添加 RewriteRule ^(.*)$ index.php [L,E=PATH_INFO:$1]

    回复
    0

  • 薛丽涛

    薛丽涛3年前

    终于迈过这道坎儿,增删改查已实现,之前瞎混了好些年,干了6年测试,2年项目和产品,这会儿在家照顾老人,可以踏踏实实学编程了,感谢朱老师和中文网。

    回复
    0

  • 马维军

    马维军4年前

    修改管理员的页面,角色、是否启动,两个没有加读取代码,且此字段只能从0修改成1,不能从1修改到0。不知道这是个设计上的缺陷还是Think官方为了什么考虑的,我查了下从3.0就有人遇到这个这个。 解决办法: $condition = ['id'=>$data['id']] ; $status='0'; $role='0'; $da

    回复
    0

  • 马维军

    马维军4年前

    return ['status'=>$status, 'message'=>$message]; 一直无法返回数组,Peter-Zhu老师您用的是哪个版本的ThinkPHP 不用json直接return就可以返回数组。

    回复
    0

  • 马维军

    添加管理员,Ajax验证 搞了两天,一开始就是没反应,发现是returm不能直接返回数组。改为了json方法可以了,下载的模板明明有添加成功后关闭窗口,添加成功后还的手动点关闭。 var index = parent.layer.getFrameIndex(window.name); parent.$('.btn-refresh').click(); parent

    马维军 · 4年前
    .

    怎么修改?哪里要改成json?

    . · 3年前
    さ刹那ゝ゛永恒り

    怎么改的啊 改哪里啊

    さ刹那ゝ゛永恒り · 3年前
    塞班。via

    在admin_add.html 的success: function(data){ if (data.status == 1) { alert(data.message);后面添加var index = parent.layer.getFrameIndex(window.name); parent.$('

    塞班。via · 3年前
  • 宝怡

    宝怡4年前

    全干工程师 冲冲冲!

    回复
    0

  • kev

    kev4年前

    不错不错,通俗易懂,我喜欢唱,跳,rap,篮球。music,鸡你太美。。。baby。。。鸡你实在是太美。。。。baby。。。

    回复
    0

  • 佛系90后

    佛系90后4年前

    还是不错的,比较适合稍微有点基础的

    回复
    0

  • 马孔多的小Lu

    马孔多的小Lu5年前

    讲的真的很好,学习到了

    回复
    0

  • 21克

    21克5年前

    我很懒,夏天周末喜欢一个人在公园,冬天周末喜欢窝在家里,大多数时间不喜欢吵闹的地方,偶尔喜欢和朋友约饭。脾气差的时候很差。最不能忍受的欺骗和背叛。有点浪漫主义

    回复
    0

  • 相川步

    相川步5年前

    真是众口难调有难度。 既然都学到了框

    回复
    0

  • Asia

    Asia5年前

    很好的课程,支持Peter老师,非常感谢

    回复
    0

  • 千图印刷广告

    千图印刷广告5年前

    很好的课程,支持Peter老师,非常感谢!

    回复
    0

  • 全部笔记发布笔记

  • 手机用户1573092716

    手机用户15730927164年前

    软删除: 在顶部引入:use traits\model\SoftDelete

    0

  • xya

    xya4年前

    管理员添加编辑与软删除 添加数据的模版admin_add.html也继承自base父模版。添加的时候,实际上是一个弹层,这个弹层小窗口中显示的网页是没有头部和菜单的。通过block标签中间置空的方式删除继承自父模版的头部和菜单。 提交主要都是使用Ajax方式提交。 检查用户名和邮箱是否重复 在添加数据的模版中,运用Ajax方法检查用户名和邮箱是否重复。 //失去焦点时,运用Ajax方法检查用户名是否重复 $("#name").blur(function(){ $.ajax({type: 'GET', //提交类型 url: "checkUserName", //提交的url地址,使用user控制器下的checkUserName方法进行校验 data:{name:$(this).val()}, //当前需要校验的值,他用对象的方式给出 dataType: 'json', //当前提交的数据类型为json格式 success: function(data){ //当前成功后的回调函数,检测从服务器上返回的数据 if (data.status == 1) { //设置了一个status属性,检测他的值, 若为1,说明校验成功,弹出一个提示信息 alert(data.message); } else { alert(data.message); } } }); 检查邮箱是否重复与检测用户名重复的方法基本是一样的。运用的是user控制器下的checkUserEmail方法。 用户添加操作 还是运用ajax方法进行用户添加操作。当前数据全部校验完成后,将当前表单中的数据序列化,然后提交到user控制器下的addUser方法进行处理,若处理成功,返回一个提示信息,否则弹出一个失败信息。这里的提示信息也是在控制器中设置的。 控制器下检查用户名和邮箱是否重复的方法 //checkUserName方法,检查用户名是否重复 public function checkUserName(Request $request) { $userName = trim($request->param('name')); //通过请求对象的param方法获取到前端传递过来的用户名 $name = ['name'=>$userName]; $status = 1; //设置返回值的初始值status为1 $message = '用户名可用'; $rule = [ 'name|用户名' => "require|min:3|max:10", ]; $result = $this -> validate($name, $rule); if ($result === true) { //当前模型静态调用get方法进行查询,条件就是当前表单中的name值是否与传递过来的一致 if (UserModel::get(['name' => $userName])) { //如果在表中查询到该用户名 $status = 0; $message = '用户名重复,请重新输入!'; } }else{ $status = 0; $message = '用户名不可用,请重新输入!'; } return ['status' => $status, 'message' => $message]; } //checkUserEmail方法,检查email是否重复 public function checkUserEmail(Request $request) { $userEmail = trim($request -> param('email')); $status = 1; $message = '邮箱可用'; if (UserModel::get(['email'=> $userEmail])) { //查询表中找到了该邮箱,修改返回值 $status = 0; $message = '邮箱重复,请重新输入~~'; } return ['status'=>$status, 'message'=>$message]; } 管理员提交操作 //addUser方法,添加管理员提交操作 public function addUser(Request $request) { $data = $request->param(); $status = 1; $message = '添加成功'; //设定验证规则 $rule = [ 'name|用户名' => "require|min:3|max:10", 'password|密码' => "require|min:3|max:10", 'email|邮箱' => 'require|email' ]; $result = $this -> validate($data, $rule); //通过验证 if ($result === true) { $user= UserModel::create($request->param()); //调用模型中的静态方法create进行数据添加 if ($user === null) { $status = 0; $message = '添加失败'; } }else{ $status = 0; $message = '添加失败'; } //返回当前的操作状态,操作的提示信息给前端的Ajas调用 return ['status'=>$status, 'message'=>$message]; } 管理员编辑操作 管理员编辑的模版admin_edit.html与添加数据的模版admin_add.html一样,也继承自base父模版。前端部分都几乎一样。重点看后面的Ajas提交部分。 <script> $(function(){ //检测当前用户是否修改了数据,是,激发change事件,提交按钮可用 $("form").children().change(function(){ $("#submit").removeClass('disabled'); }); $("#submit").on("click", function(event){ //在提交按钮上执行Ajax函数 $.ajax({ type: "POST", url: "{:url('user/editUser')}", //请求一个url地址进行处理,位于user/editUser data: $("#form-admin-add").serialize(), //操作的数据是当前表单序列化的值 dataType: "json", success: function(data){ //处理成功后的回调函数 if (data.status == 1) { alert(data.message); layer_close(); } else { alert(data.message); } } }); }) }) </script>

    软删除功能 在自定义模型User.php中,第一步,用use关键字引入当前框架traits\model中的SoftDelete类(这个类在edu\thinkphp\library\traits\model\SoftDelete.php中)这个类定义了一些软删除的方法。第二步,在当前的自定义模型use中,再用use关键字引入软删除的方法集,然后设置$deleteTime属性,属性值设置为delete_time,他会记录当前的记录时间,而且一定要与数据库表中的delete_time字段一致。

    0

  • 九现神龙111

    九现神龙1115年前

    usermodel 设置软删除 定义属性

    0

  • 取消 回复 发送
  • 取消 发布笔记 发送
  • PHP中文网