[thinkPHP5项目实战_21]管理员添加、删除和修改

[thinkPHP5项目实战_21]管理员添加、删除和修改

与之前的业务一样,管理员的添加和删除代码如下:

1.新建admin的控制器、视图和验证器文件:

20171029225337611.png


2.控制器代码:

<?php
namespace app\admin\controller;
use think\Controller;
class Admin extends Controller
{
    public function lists()
    {
        $adminres = \think\Db::name('admin')->paginate(3);
        $this->assign('adminres',$adminres);
        return $this->fetch();
    }
 
    public function add()
    {
    if(request()->isPost()){
            $data = [
                'username'=>input('username'),
                'password'=>input('password'),
            ];
            $validate = \think\Loader::validate('Admin');
            if($validate->check($data)){
                $data['password'] = md5($data['password']);
                $res = \think\Db::name('admin')->insert($data);
                if($res){
                    return $this->success('管理员成功','lists');
                }else{
                    return $this->error('管理员失败');
                }
            }else{
                //验证失败输出提示信息
                return $this->error($validate->getError());
            }
    return;
    }
        return $this->fetch();
    }
 
    public function del()
    {
        $id=input('id');
        if($id==1){
            return $this->error('初始管理员不能删除!');
        }else{
            if(db('admin')->delete($id)){
                return $this->success('删除管理员成功','lists');
            }else{
                return $this->error('删除管理员失败');
            }
        }
    }
 
    public function edit()
    {
        //获取修改的信息
        $id=input('id');
        $admins = db('admin')->find($id);
        $this->assign('admins',$admins);//模板赋值
        //修改后提交
        if(request()->isPost()){
            $data=[
                'id'=>input('id'),
                'username'=>input('username'),
                'password'=>input('password'),
            ];
            $validate = \think\Loader::validate('Admin');
            if($validate->check($data)){
                $data['password'] = md5($data['password']);
                $res = \think\Db::name('admin')->update($data);
                if($res){
                    return $this->success('修改管理员成功','lists');
                }else{
                    return $this->error('修改管理员失败');
                }
            }else{
                return $this->error($validate->getError());
            }
        }
        return $this->fetch();
    }
}


包含获取管理员列表、修改管理员和删除等方法。

另外,保留了一个管理员不能删除和对管理员的密码进行了md5加密,由于md5加密空后不为空,所以先进行空验证再加密


3.验证器代码

<?php
namespace app\admin\validate;
 
use think\Validate;
 
class Admin extends Validate
{
    //验证规则
    protected $rule = [
        'username'  =>  'require|max:25|unique:admin',
        'password' => 'require|min:5',
    ];
 
    //验证提示
    protected $message  =   [
        'username.unique' => '管理员名称不能重复', 
        'username.max' => '管理员名称不能大于5个字符',
        'username.require' => '管理员名称必须',
        'password.require' => '管理员密码必须',
        'password.min' => '管理员密码不能少于5位',
    ];
}


4.视图代码

4.1.添加管理员视图:


<table class="table table-striped">
    <thead>
        <tr>
            <th>ID</th>
            <th>管理员名称</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
        {volist name="adminres" id="vo"}
        <tr>
            <td>{$vo.id}</td>
            <td><a href="#" title="{$vo.username}">{$vo.username}</a></td>
            <td>
                <a href="{:url('edit',array('id'=>$vo.id))}">修改</a> {if condition="$vo.id neq 1"}
                <a href="{:url('del',array('id'=>$vo.id))}" οnclick="return confirm('确定删除该管理员?')">删除</a> {/if}
            </td>
        </tr>
        {/volist}
    </tbody>
</table>
<div>{$adminres->render()}</div>
4.3.管理员编辑代码:
<form action="" method="post" id="myform" name="myform" enctype="multipart/form-data">
    <input type="hidden" name="id" value="{$admins.id}">
    <table class="insert-tab" width="100%">
        <tbody>
            <tr>
                <th width="10%">管理员名称:</th>
                <td>
                    <input class="common-text required" id="title" name="username" size="50" value="{$admins.username}" type="text">
                </td>
            </tr>
            <tr>
                <th>密码:</th>
                <td>
                    <input class="common-text" name="password" size="50" value="" type="password">
                </td>
            </tr>
            <tr>
                <th></th>
                <td>
                    <input class="btn btn-primary btn6 mr10" value="提交" type="submit">
                    <input class="btn btn6" οnclick="history.go(-1)" value="返回" type="button">
                </td>
            </tr>
        </tbody>
    </table>
</form>


4.2.管理员列表代码

<table class="table table-striped">
    <thead>
        <tr>
            <th>ID</th>
            <th>管理员名称</th>
            <th>操作</th>
        </tr>
    </thead>
    <tbody>
        {volist name="adminres" id="vo"}
        <tr>
            <td>{$vo.id}</td>
            <td><a href="#" title="{$vo.username}">{$vo.username}</a></td>
            <td>
                <a href="{:url('edit',array('id'=>$vo.id))}">修改</a> {if condition="$vo.id neq 1"}
                <a href="{:url('del',array('id'=>$vo.id))}" οnclick="return confirm('确定删除该管理员?')">删除</a> {/if}
            </td>
        </tr>
        {/volist}
    </tbody>
</table>
<div>{$adminres->render()}</div>


4.3.管理员编辑代码:

<form action="" method="post" id="myform" name="myform" enctype="multipart/form-data">
    <input type="hidden" name="id" value="{$admins.id}">
    <table class="insert-tab" width="100%">
        <tbody>
            <tr>
                <th width="10%">管理员名称:</th>
                <td>
                    <input class="common-text required" id="title" name="username" size="50" value="{$admins.username}" type="text">
                </td>
            </tr>
            <tr>
                <th>密码:</th>
                <td>
                    <input class="common-text" name="password" size="50" value="" type="password">
                </td>
            </tr>
            <tr>
                <th></th>
                <td>
                    <input class="btn btn-primary btn6 mr10" value="提交" type="submit">
                    <input class="btn btn6" οnclick="history.go(-1)" value="返回" type="button">
                </td>
            </tr>
        </tbody>
    </table>
</form>



5.数据库管理员字段结构:

20171029230205348.gif




另外,需要在侧边栏公共模板添加管理员管理导航。


原文链接:https://blog.csdn.net/weixin_36185028/article/details/78388943


追梦猪网站致力于前端分享申明:本站内容搜集整理而来请勿商业用途,仅供交流所用,如若侵犯您的权益请邮件站长进行删除!

文明浏览请勿传播非法内容