摘要:本章主要学习了管理员的添加、修改、删除、查询功能,通过学习,对本章知识进行实战,代码如下:User.php:<?php namespace app\admin\controller; use app\admin\model\user\UserModel; use think\Controller; use think\facade\Request; u
本章主要学习了管理员的添加、修改、删除、查询功能,通过学习,对本章知识进行实战,代码如下:
User.php:
<?php
namespace app\admin\controller;
use app\admin\model\user\UserModel;
use think\Controller;
use think\facade\Request;
use think\Paginator;
class User extends Controller
{
public function index()
{
//每页数据条数
$paginate = 3;
$this->view->assign('paginate',$paginate);
$users = UserModel::field(['id','username','phone','email','time'])->paginate($paginate);
$this->view->assign('users',$users);
//查询所有数据
$users = UserModel::select();
// 获取数据集记录数
$count = count($users);
//总共数据条数
$this->view->assign('count',$count);
return $this->view->fetch();
}
public function add()
{
return $this->view->fetch();
}
public function doAdd()
{
//获取参数
$params = Request::param();
//halt($params['username']);
//echo $params['username'];
//判断用户名是否存在
if(UserModel::where('username', $params['username'])->find())
{
//$this->ajaxReturn('用户名已存在,不允许添加重复的用户名。');
//echo "<script>alert('用户名已存在,不允许添加重复的用户名。');</script>";
return ['res'=>0,'msg'=>'用户名已存在,不允许添加重复的用户名。'];
}
$user = new UserModel();
$params['time'] = time();
if($user->save($params))
{
return ['res'=>1,'msg'=>'添加成功'];
}
else
{
return ['res'=>0,'msg'=>'添加失败'];
}
}
public function edit()
{
$id = Request::param('id');
$user = UserModel::find(['id'=>$id]);
$this->view->assign('user',$user);
//halt($user);
return $this->view->fetch();
}
public function doEdit()
{
//获取参数
$params = Request::param();
$user = new UserModel();
$data=[
'phone' => $params['phone'],
'email' => $params['email'],
'password' => $params['password']
];
//halt($data);
// save方法第二个参数为更新条件
if($user->save($data,['id' => $params['id']]))
{
return ['res'=>1,'msg'=>'修改成功'];
}
else
{
return ['res'=>0,'msg'=>'修改失败'];
}
}
public function doDel()
{
$id = Request::param('id');
if(UserModel::destroy($id))
{
return ['res'=>1,'msg'=>'删除成功'];
}
else
{
return ['res'=>0,'msg'=>'删除失败'];
}
}
}index.html:
{include file="/public/header" /}
<body>
<div class="x-nav">
<span class="layui-breadcrumb">
<a href="">首页</a>
<a href="">演示</a>
<a>
<cite>导航元素</cite></a>
</span>
<a class="layui-btn layui-btn-small" style="line-height:1.6em;margin-top:3px;float:right" href="javascript:location.replace(location.href);" title="刷新">
<i class="layui-icon" style="line-height:30px">ဂ</i></a>
</div>
<xblock>
<button class="layui-btn" onclick="x_admin_show('添加用户','{:url(\'User/add\')}')"><i class="layui-icon"></i>添加</button>
<span class="x-right" style="line-height:40px">共有数据:{$count}条。每页:{$paginate}条。</span>
</xblock>
<table class="layui-table">
<thead>
<tr>
<th>ID</th>
<th>登录名</th>
<th>手机</th>
<th>邮箱</th>
<th>加入时间</th>
<th>操作</th>
</thead>
<tbody>
{volist name="users" id="user"}
<tr>
<td>{$user.id}</td>
<td>{$user.username}</td>
<td>{$user.phone}</td>
<td>{$user.email}</td>
<td>{$user.time|date="Y-m-d H:i:s"}</td>
<td class="td-manage">
<a title="编辑" onclick="x_admin_show('编辑','{:url(\'edit\')}'+'?id={$user.id}')" href="javascript:;">
<i class="layui-icon"></i>
</a>
<a title="删除" onclick="member_del(this,{$user.id})" href="javascript:;">
<i class="layui-icon"></i>
</a>
</td>
</tr>
{/volist}
</tbody>
</table>
<div class="page">
{$users|raw}
</div>
</div>
<script>
layui.use('laydate', function(){
var laydate = layui.laydate;
//执行一个laydate实例
laydate.render({
elem: '#start' //指定元素
});
//执行一个laydate实例
laydate.render({
elem: '#end' //指定元素
});
});
/*用户-停用*/
function member_stop(obj,id){
layer.confirm('确认要停用吗?',function(index){
if($(obj).attr('title')=='启用'){
//发异步把用户状态进行更改
$(obj).attr('title','停用')
$(obj).find('i').html('');
$(obj).parents("tr").find(".td-status").find('span').addClass('layui-btn-disabled').html('已停用');
layer.msg('已停用!',{icon: 5,time:1000});
}else{
$(obj).attr('title','启用')
$(obj).find('i').html('');
$(obj).parents("tr").find(".td-status").find('span').removeClass('layui-btn-disabled').html('已启用');
layer.msg('已启用!',{icon: 5,time:1000});
}
});
}
/*用户-删除*/
function member_del(obj,id){
layer.confirm('确认要删除吗?',function(index){
//发异步删除数据
//alert(id);
$.post('{:url("doDel")}',{
id:id
},function (data) {
if(data.res=="1")
{
$(obj).parents("tr").remove();
layer.msg(data.msg,{icon:1,time:1000});
}
else
{
layer.msg(data.msg,{icon:1,time:1000});
}
})
});
}
function delAll (argument) {
var data = tableCheck.getData();
layer.confirm('确认要删除吗?'+data,function(index){
//捉到所有被选中的,发异步进行删除
layer.msg('删除成功', {icon: 1});
$(".layui-form-checked").not('.header').parents('tr').remove();
});
}
</script>
<script>var _hmt = _hmt || []; (function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?b393d153aeb26b46e9431fabaf0f6190";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();</script>
</body>
</html>add.html:
{include file="/public/header" /}
<body>
<div class="x-body">
<form class="layui-form">
<div class="layui-form-item">
<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>
<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>
<div class="layui-form-item">
<label for="password" class="layui-form-label">
<span class="x-red">*</span>密码
</label>
<div class="layui-input-inline">
<input type="password" id="password" name="pass" required="" lay-verify="pass"
autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">
6到16个字符
</div>
</div>
<div class="layui-form-item">
<label for="L_repass" class="layui-form-label">
<span class="x-red">*</span>确认密码
</label>
<div class="layui-input-inline">
<input type="password" id="L_repass" name="repass" required="" lay-verify="repass"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label for="L_repass" class="layui-form-label">
</label>
<button class="layui-btn" lay-filter="add" lay-submit="">
增加
</button>
</div>
</form>
</div>
<script>
layui.use(['form','layer'], function(){
$ = layui.jquery;
var form = layui.form
,layer = layui.layer;
//自定义验证规则
form.verify({
nikename: function(value){
if(value.length < 5){
return '昵称至少得5个字符啊';
}
}
,pass: [/(.+){6,12}$/, '密码必须6到12位']
,repass: function(value){
if($('#password').val()!=$('#L_repass').val()){
return '两次密码不一致';
}
}
});
//监听提交
form.on('submit(add)', function(data){
console.log(data);
//发异步,把数据提交给php
$.post("{:url('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);
//刷新父窗口数据
parent.location.reload();
});
}
else
{
layer.alert(data.msg, {icon: 6});
}
}
);
return false;
});
});
</script>
<script>var _hmt = _hmt || []; (function() {
var hm = document.createElement("script");
hm.src = "https://hm.baidu.com/hm.js?b393d153aeb26b46e9431fabaf0f6190";
var s = document.getElementsByTagName("script")[0];
s.parentNode.insertBefore(hm, s);
})();</script>
</body>
</html>edit.html:
{include file="/public/header" /}
<body>
<div class="x-body">
<form class="layui-form">
<div class="layui-form-item">
<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" disabled value="{$user.username}">
<input type="text" id="id" name="id" required="" lay-verify="required"
autocomplete="off" class="layui-input" disabled value="{$user.id}" style="display: none;">
</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" value="{$user.phone}">
</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" value="{$user.email}">
</div>
<div class="layui-form-mid layui-word-aux">
<span class="x-red">*</span>
</div>
</div>
<div class="layui-form-item">
<label for="password" class="layui-form-label">
<span class="x-red">*</span>密码
</label>
<div class="layui-input-inline">
<input type="password" id="password" name="password" required="" lay-verify="password"
autocomplete="off" class="layui-input">
</div>
<div class="layui-form-mid layui-word-aux">
6到16个字符
</div>
</div>
<div class="layui-form-item">
<label for="repass" class="layui-form-label">
<span class="x-red">*</span>确认密码
</label>
<div class="layui-input-inline">
<input type="password" id="repass" name="repass" required="" lay-verify="repass"
autocomplete="off" class="layui-input">
</div>
</div>
<div class="layui-form-item">
<label for="repass" class="layui-form-label">
</label>
<button class="layui-btn" lay-filter="add" lay-submit="">
修改
</button>
</div>
&
批改老师:查无此人批改时间:2019-05-05 09:47:00
老师总结:完成的不错。后台cms管理系统,就是对数据进行操作。继续加油。