摘要:一.后台主页模板分离 将重复的内容header,提出来,放在public目录,创建header.html中,然后将其导入到所用的模板中index.html add.html edit.html二. 创建数据库,并创建model/User.php对应数据表User 开启自动时间戳 和软删除功能<?php namespace a
一.后台主页模板分离
将重复的内容header,提出来,放在public目录,创建header.html中,然后将其导入到所用的模板中index.html add.html edit.html
二. 创建数据库,并创建model/User.php对应数据表User 开启自动时间戳 和软删除功能

<?php
namespace app\admin\model;
use think\Model;
use think\model\concern\SoftDelete;
class User extends Model
{
//使用trait软删除
use SoftDelete;
//表名
protected $table = 'user';
//主键
protected $pk = 'id';
//开启自动时间戳
protected $autoWriteTimestamp = true;
//设置一下用户自定义的新增和更新时间的字段名
protected $createTime = 'create_time';
protected $updateTime = 'update_time';
//设置软删除字段
protected $defaultSoftDelete = 'delete_time';
}三.查询用户表,并输出在User/index控制器对应的模板中
* 并运用tp分页类形成分页样式输出到模板中
namespace app\admin\controller;
use think\Controller;
use think\facade\Request;
use app\admin\model\User as UserModel;
class User extends Controller
{
public function index()
{
//分页设置
$config = [
'type'=>'bootstrap',
'var_page'=>'page'
];
//每页显示数量
$num = 5;
//是否是简单分页 就只有上一页 和下一页
$simple = false;
//按id降序排列,并且每一页设为八条数据
$users = UserModel::order('id')
->paginate($num,$simple,$config);
//分页
$page = $users->render();
//管理员列表
$this->view->assign('users',$users);
//分页信息
$this->view->assign('page',$page);
//渲染管理员界面
return $this->view->fetch();
}
四.实现新增操作,
1.点击新增按钮,弹出 {:url(\'User/add\')}页面,进行添加 在User控制器类创建add方法进行实现渲染页面
<label for="username" class="layui-form-label"> <span class="x-red">*</span>登录名 </label> <div class="layui-input-inline"> <input type="text" id="username" name="username" required="" lay-verify="required" autocomplete="off" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux"> <span class="x-red">*</span>将会成为您唯一的登入名 </div> </div> <div class="layui-form-item"> <label for="phone" class="layui-form-label"> <span class="x-red">*</span>手机 </label> <div class="layui-input-inline"> <input type="text" id="phone" name="phone" required="" lay-verify="phone" autocomplete="off" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux"> <span class="x-red">*</span>将会成为您唯一的登入名 </div> </div> <div class="layui-form-item"> <label for="email" class="layui-form-label"> <span class="x-red">*</span>邮箱 </label> <div class="layui-input-inline"> <input type="text" id="email" name="email" required="" lay-verify="email" autocomplete="off" class="layui-input"> </div> <div class="layui-form-mid layui-word-aux"> <span class="x-red">*</span> </div> </div> /************后续几乎一样就不粘贴了太长了**********/
2. 将add页面表单的数据以post方法异步提交到User控制器的doAdd方法中进行操作 当脚本返回res==1为添加成功,返回对应数据
$.post('{:url("User/doAdd")}',{
'username':$('#username').val(),
'phone':$('#phone').val(),
'email':$('#email').val(),
'password':$('#password').val(),
},function (data) {
if(data.res == 1){
layer.alert(data.msg, {icon: 6},function () {
// 获得frame索引
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
});
}else{
layer.alert(data.msg, {icon: 6},function () {
// 获得frame索引
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
});
}
}) 3.doAdd方法具体实现,应用模型类UserModel进行新增操作,
public function doAdd()
{
//获取前台提交过来的数据
$data = Request::param();
$data['password'] = sha1($data['password']);
//获取要添加的用户名
$username = $data['username'];
//查询数据库用户名是否存在
$res = UserModel::where('username',$username)->find();
if($res == true){
return ['res'=>0,'msg'=>'用户名已存在!'];
}
//添加
$user = UserModel::create($data);
if($user == true){
return ['res' => 1, 'msg' => '添加成功!'];
}else{
return ['res' => 0, 'msg' => '添加失败!'];
}
}

五.实现修改操作
1.点击修改按键,弹出User/edit控制器的模板页面,并传入对应的id {:url(\'User/edit\')}?id={$user.id} 并根据id值来查询对应的数据,传入模板变量在模板的表单中显示
<a title="编辑" onclick="x_admin_show('编辑','{:url(\'User/edit\')}?id={$user.id}')" href="javascript:;">
<i class="layui-icon"></i>
</a> public function edit()
{
$id = Request::param('id');
// echo $id;
//获取编辑的信息
$userInfo = UserModel::get($id);
// dump($userInfo);
//模板赋值(查询的信息)
$this->view->assign('userInfo',$userInfo);
//渲染编辑界面
return $this->view->fetch();
} 2.点击edit页面中的更新按钮,实现post异步将数据传输到User/doEdit方法中, 要创建一个隐藏表单,将id也传入,方便传入更新条件
$.post('{:url("User/doEdit")}',{
'username':$('#username').val(),
'phone':$('#phone').val(),
'email':$('#email').val(),
'id':$('#id').val(),
},function (data) {
if(data.res == 1){
layer.alert(data.msg, {icon: 6},function () {
// 获得frame索引
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
// window.location.href="url('User/index')";
});
}else{
layer.alert(data.msg, {icon: 6},function () {
// 获得frame索引
var index = parent.layer.getFrameIndex(window.name);
//关闭当前frame
parent.layer.close(index);
// window.location.href="url('User/index')";
});
}
}) 3.doEdit中接受post传入的数据,提出id作为更新条件并判断是否存在
public function doEdit()
{
$data = Request::param();
@$id = $data['id'];
if($id==''){
return ['res' => '2', 'msg' => '不允许无条件修改!!'];
}
$res = UserModel::update($data,['id'=>$id]);//执行模型类的更新操作
if($res == true){
return ['res' => 1, 'msg' => '更新成功'];
}else{
return ['res' => 0, 'msg' => '更新失败'];
}
}
六.实现软删除
* 根据模板中传过来的id值,来进行软删除,无id不允许删除 在model/User.php中开启软删除,并创建对应字段
public function del()
{
$id = Request::param('id');
if($id==''){
return ['res'=>2,'msg'=>'非法操作!'];
}
$res = UserModel::destroy($id);
if($res){
return ['res'=>1,'msg'=>'删除成功'];
}else{
return ['res'=>0,'msg'=>'删除失败'];
}
}
批改老师:天蓬老师批改时间:2018-12-20 20:39:21
老师总结:这套作业,完成的相当棒, 就应该这样, 相信你做完, 对框架开发又有了自己的认识