模型层里:
<?php
namespace app\admin\model;
use think\Model;
use think\Db;
class Member extends Model{
protected $name = "user";
//添加会员
public function addmember($data){
//return Db::table($this->table)->insertGetId($data);
return $this->insertGetId($data);
}
//查询单条
function findmember($data)
{
$UserTell=$this->where('tellphone',$data['tellphone'])->find();
return $UserTell;
}
// 获取所有会员
public function getAllMem(){
return $this->select();
}
//列表分页
public function getPagedata($pagesize){
return $this->paginate($pagesize);
//$where = 1;
//$limits = 15;// 获取总条数
//$count = $this->where($where)->count();//计算总页面
//$allpage = intval(ceil($count / $limits));
//$lists = $this->page($page, $limits)->select();
//return ['count'=>$count,'allpage'=>$allpage,'lists'=>$lists];
}
//单查
public function findOne($w){
return $this->where($w)->find();
}
// 删除会员
public function delMember($w){
return $this->where($w)->delete();
}
//修改会员
public function updOneMem($w,$data){
return $this->where($w)->update($data);
}
}
控制器里
<?php
namespace app\admin\controller;
use admin\CommonController;
use think\Request;
use think\Validate;
use think\Session;
//use app\admin\model\Member;
header("Content-Type:text/html; charset=utf-8");
class Member extends Common{
/*
*获取会员列表
*/
public function member(){
$mem = model('member');
// $res = $mem->getAllMem();
// $this->assign('member',$res);
$res = $mem->getPagedata(10);
$pagefoot=$res->render();
$this->assign(["member"=>$res,"pagefoot"=>$pagefoot]);
return $this->fetch();
}
/*
*添加会员
*/
public function addMember(){
if(request()->isPost()){
$Request=Request::instance();
$data=$Request->post();
$password = input('password');
//判断提交值非空
if(empty($data['username'])){
$this->error("会员姓名不能为空");exit;
}
if(empty($data['tellphone'])){
$this->error("手机号不能为空");exit;
}
if(empty($password)){
$data['password']=md5(substr(md5(123456),0,10));
}else{
$data['password']=md5(substr(md5($password),0,10));
}
$mem=model('member');
$res=$mem->findmember($data);//查询单条,验证添加手机号唯一性
if($res){
$this->error("该手机号会员已添加");
}
//验证提交数据合法性
$result = $this->validate(
[
'username' =>$data['username'],
],
[
'username' => 'require|max:10',
]);
if(true !== $result){
// 验证失败 输出错误信息;
$this->error("会员姓名不能超过三个汉字");
}
$tpone="/^1[34578]\d{9}$/";
if(!preg_match($tpone,$data['tellphone'])){
$this->error("手机号码格式不正确");
}
$mem = model('member');//实例化model
$result=$mem->addmember($data);
if($result)
{
$this->success("添加会员成功");
}else{
$this->error('添加会员失败');
}
}else{
return $this->fetch();
}
}
/*
*编辑会员
*/
public function editMember(){
if(request()->isPost()){
$id = input("mid");//接受要改的数据id
// $Request=Request::instance();
// $data=$Request->post();
$username = input('username');
$tellphone = input('tellphone');
$password = input('password');
//验证提交数据合法性
$result = $this->validate(
[
'username' =>$username,
],
[
'username' => 'require|max:10',
]);
if(true !== $result){
// 验证失败 输出错误信息;
$this->error("会员姓名不能超过三个汉字");
}
$tpone="/^1[34578]\d{9}$/";
if(!preg_match($tpone,$tellphone)){
$this->error("手机号码格式不正确");
}
//判断密码是否要改
$ple=strlen($password);
if($ple=32){
$password=$password;
}else{
$password=md5(substr(md5($password),0,10));
}
$data['tellphone']=$tellphone;
$data['username']=$username;
$w['id'] = $id;
$mem=model('Member');
$res = $mem->updOneMem($w,$data);
if($res){
$this->success("编辑成功");
}else{
$this->error("编辑失败");
}
}else{
$id = input("mid");
$admin = model('Admin');
$w['id'] = $id;
$res = $admin->getOneAdmin($w);
$this->assign('member',$res);
return $this->fetch();
}
}
//个人信息设置
public function upSelfnews(){
if(request()->isPost()){
$id = input("mid");//接受要改的数据id
// $Request=Request::instance();
// $data=$Request->post();
$username = input('username');
$tellphone = input('tellphone');
$password = input('password');
//验证提交数据合法性
$result = $this->validate(
[
'username' =>$username,
],
[
'username' => 'require|max:10',
]);
if(true !== $result){
// 验证失败 输出错误信息;
$this->error("会员姓名不能超过三个汉字");
}
$tpone="/^1[34578]\d{9}$/";
if(!preg_match($tpone,$tellphone)){
$this->error("手机号码格式不正确");
}
//判断密码是否要改
$ple=strlen($password);
if($ple=32){
$password=$password;
}else{
$password=md5(substr(md5($password),0,10));
}
$data['tellphone']=$tellphone;
$data['username']=$username;
$w['id'] = $id;
$mem=model('Member');
$res = $mem->updOneMem($w,$data);
if($res){
$this->success("设置成功");
}else{
$this->error("设置失败");
} }else{
$username=Session::get('admin');
$admin = model('Admin');
$w['username'] = $username['username'];
$res = $admin->getOneAdmin($w);
//print_r($res);die;
$this->assign('member',$res);
return $this->fetch();
}
}
/*
*删除会员
*/
public function delMember(){
$id = input("mid");
$w['id'] = "$id";
$mem = model('member');
$res = $mem->delMember($w);
if($res){
$this->success("删除成功");
}else{
$this->error("删除失败");
}
}
//Excel导入会员
public function ExcelAdd(){
if(request()->isPost()){
if (!empty($_FILES)){
import('PHPExcel.PHPExcel', EXTEND_PATH);//该类放在了项目根目录extend里了
//vendor("PHPExcel.PHPExcel"); // 导入PHPExcel类库
$PHPExcel = new \PHPExcel(); // 创建PHPExcel对象,注意,不能少了\
$file = request()->file('file');
$info = $file->validate(['size'=>15678,'ext'=>'xlsx,xls,csv'])->move(ROOT_PATH . 'Uploads' . DS . 'Excel');
if($info){
$exclePath = $info->getSaveName(); //获取文件名
$file_name = ROOT_PATH . 'Uploads' . DS . 'Excel' . DS . $exclePath; //上传文件的地址
$objReader =\PHPExcel_IOFactory::createReader('Excel2007');
$obj_PHPExcel =$objReader->load($file_name, $encode = 'utf-8'); //加载文件内容,编码utf-8
$excel_array=$obj_PHPExcel->getsheet(0)->toArray(); //转换为数组格式
array_shift($excel_array); //删除第一个数组(标题);
$i=0;
//$data = [];
//foreach($excel_array as $k=>$v) {
//print_r($v);
// $data = [];
//$data[$k]['username'] = $v[0];
//$data[$k]['tellphone'] = $v[1];
//$data[$k]['password']=md5(substr(md5(123456),0,10));
// $mem = model('member');//实例化model
//$success=$mem->addmember($data);
//}
foreach($excel_array as $k=>$v) {
//print_r($v);
$data = [];
$data['username'] = $v[0];
$data['tellphone'] = $v[1];
$data['password']=md5(substr(md5(123456),0,10));
$mem = model('member');//实例化model
$success=$mem->addmember($data);
}
//print_r($data);die;
//$success=Db::name('t_station')->insertAll($data); //批量插入数据
if($success){
$this->success("导入成功");
} else{
$this->error("导入失败");
}
} else{
// 上传失败获取错误信息
echo $file->getError();
}
}else {
return $this->fetch();
}
}else{
return $this->fetch();
}
}
}
列表页:
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
<meta charset="utf-8" />
<title>会员管理</title>
<meta name="description" content="Restyling jQuery UI Widgets and Elements" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0" />
<link rel="stylesheet" href="http://139.129.219.76/shanghaiaishi/public/static/admin/css/bootstrap.min.css" />
<link rel="stylesheet" href="http://139.129.219.76/shanghaiaishi/public/static/admin/css/font-awesome.min.css" />
<link rel="stylesheet" href="http://139.129.219.76/shanghaiaishi/public/static/admin/css/ace-fonts.css" />
<link rel="stylesheet" href="http://139.129.219.76/shanghaiaishi/public/static/admin/css/ace.min.css" id="main-ace-style" />
<!--[if lte IE 9]>
<link rel="stylesheet" href="http://139.129.219.76/shanghaiaishi/public/static/admin/css/ace-part2.min.css" />
<![endif]-->
<!--[if lte IE 9]>
<link rel="stylesheet" href="http://139.129.219.76/shanghaiaishi/public/static/admin/css/ace-ie.min.css" />
<![endif]-->
<script src="http://139.129.219.76/shanghaiaishi/public/static/admin/js/ace-extra.min.js"></script>
<!--[if lte IE 8]>
<script src="http://139.129.219.76/shanghaiaishi/public/static/admin/js/html5shiv.min.js"></script>
<script src="http://139.129.219.76/shanghaiaishi/public/static/admin/js/respond.min.js"></script>
<![endif]-->
<style type="text/css">
.CSSearchTbl{ border:1px #008CD4 solid;}
.CSSearchTbl thead{}
.CSSearchTbl thead tr{}
.CSSearchTbl thead tr th{ text-align:left; padding-left:10px;}
.CSSearchTbl tbody{}
.CSSearchTbl tbody tr{}
.CSSearchTbl tbody tr td{ padding: 10px;}
.CSSearchTbl tbody tr td.right{ text-align: left;}
.CSSearchTbl tbody tr td.left{ text-align: right;}
.table-responsive{ display: none;}
</style>
</head>
<body class="no-skin">
<!-- #section:basics/navbar.layout -->
{include file="common/header"}
<!-- /section:basics/navbar.layout -->
<div class="main-container" id="main-container">
<!-- #section:basics/sidebar -->
{include file="common/left"}
<!-- /section:basics/sidebar -->
<div class="main-content">
<div class="breadcrumbs" id="breadcrumbs">
<ul class="breadcrumb">
<li>
<i class="ace-icon fa fa-home home-icon"></i>
<a href="{:url('index/index')}">首页</a>
</li>
<li>
<a href="javascript:void(0)">用户管理</a>
</li>
</ul><!-- /.breadcrumb -->
<!-- #section:basics/content.searchbox -->
<div class="nav-search" id="nav-search">
<form class="form-search">
<span class="input-icon">
<input type="text" placeholder="请输入关键字 ..." class="nav-search-input" id="nav-search-input" autocomplete="off" />
<i class="ace-icon fa fa-search nav-search-icon"></i>
</span>
</form>
</div><!-- /.nav-search -->
</div>
<div class="page-content">
<a class="btn btn-success" href="{:url('member/addMember')}">添加会员</a>
<!-- /section:settings.box -->
<div class="page-content-area">
<div class="row">
<div class="col-xs-12">
<!-- PAGE CONTENT BEGINS -->
<div class="row">
<div class="col-xs-12">
<table id="sample-table-1" class="table table-striped table-bordered table-hover">
<thead>
<tr>
<th class="center">
<label class="position-relative">
<input type="checkbox" class="ace" />
<span class="lbl"></span>
</label>
</th>
<th>手机号</th>
<th>用户名</th>
<th>密码</th>
<th class="hidden-480">操作</th>
</tr>
</thead>
<tbody>
{volist name="member" id="vo"}
<tr>
<td class="center">
<label class="position-relative">
<input type="checkbox" class="ace" />
<span class="lbl"></span>
</label>
</td>
<td>
{$vo.tellphone}
</td>
<td>{$vo.username}</td>
<td>
{$vo.password} </td>
<td>
<div class="hidden-sm hidden-xs btn-group">
<a class="btn btn-white btn-pink btn-round btn-xs" href="{:url('member/editMember',array('mid'=>$vo.id))}">
<i class="ace-icon fa fa-pencil red2"></i>
编辑
</a>
<a class="btn btn-white btn-warning btn-bold btn-xs" href="{:url('member/delMember',array('mid'=>$vo.id))}">
<i class="ace-icon fa fa-trash-o bigger-120 orange"></i>
删除
</a>
</div>
</td>
</tr>
{/volist}
</tbody>
</table>
{$pagefoot}
</div><!-- /.span -->
</div><!-- /.row -->
</div><!-- /.col -->
</div><!-- /.row -->
</div><!-- /.page-content-area -->
</div><!-- /.page-content -->
</div><!-- /.main-content -->
{include file="common/footer"}
<a href="#" id="btn-scroll-up" class="btn-scroll-up btn btn-sm btn-inverse">
<i class="ace-icon fa fa-angle-double-up icon-only bigger-110"></i>
</a>
</div><!-- /.main-container -->
<!-- basic scripts -->
<!--[if !IE]> -->
<script type="text/javascript">
window.jQuery || document.write("<script src='http://139.129.219.76/shanghaiaishi/public/static/admin/js/jquery.min.js'>"+"<"+"/script>");
</script>
<!-- <![endif]-->
<!--[if IE]>
<script type="text/javascript">
window.jQuery || document.write("<script src='http://139.129.219.76/shanghaiaishi/public/static/admin/js/jquery1x.min.js'>"+"<"+"/script>");
</script>
<![endif]-->
<script type="text/javascript">
if('ontouchstart' in document.documentElement) document.write("<script src='http://139.129.219.76/shanghaiaishi/public/static/admin/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<script src="http://139.129.219.76/shanghaiaishi/public/static/admin/js/bootstrap.min.js"></script>
<script src="http://139.129.219.76/shanghaiaishi/public/static/admin/js/jquery.dataTables.min.js"></script>
<script src="http://139.129.219.76/shanghaiaishi/public/static/admin/js/jquery.dataTables.bootstrap.js"></script>
<!-- ace scripts -->
<script src="http://139.129.219.76/shanghaiaishi/public/static/admin/js/ace-elements.min.js"></script>
<script src="http://139.129.219.76/shanghaiaishi/public/static/admin/js/ace.min.js"></script>
<script type="text/javascript">
jQuery(function($) {
$(".tbl-search").click(function(){
$(".table-responsive").slideDown("fast");
})
var oTable1 =
$('#sample-table-2')
.dataTable( {
bAutoWidth: false,
bInfo:flase,
"aoColumns": [
{ "bSortable": false },
null,
null,
null,
null,
null,
{ "bSortable": false },
null,
{ "bSortable": false }
],
"aaSorting": [],
} );
$(document).on('click', 'th input:checkbox' , function(){
var that = this;
$(this).closest('table').find('tr > td:first-child input:checkbox')
.each(function(){
this.checked = that.checked;
$(this).closest('tr').toggleClass('selected');
});
});
})
</script>
</body>
</html>