菜单添加功能

Original 2019-05-25 14:08:12 227
abstract:1. Menu.php部分<?phpnamespace app\admin\controller;use app\admin\controller\Common;use app\model\Menu as MenuModel;use think\facade\Request;class Menu extends Common{    public function ind

1. Menu.php部分

<?php

namespace app\admin\controller;
use app\admin\controller\Common;
use app\model\Menu as MenuModel;
use think\facade\Request;

class Menu extends Common
{
   public function index()
   {
       $menus = MenuModel::order('ord asc')->all();
       $this->assign('menus',$menus);
       return $this->fetch();
   }
   public function add()
   {
       return $this->fetch();
   }

   // 保存菜单
   public function save()
   {
       $data = Request::param();
       if ($data['title'] == '') {
           exit(json_encode(['code' => 1,'msg' => '菜单名称不能为空']));
       }
       if ($data['controller'] == '') {
           exit(json_encode(['code' => 1,'msg' => '控制器名不能为空']));
       }
       if ($data['method'] == '') {
           exit(json_encode(['code' => 1,'msg' => '方法名不能为空']));
       }
       $res = MenuModel::create($data);
       if (!$res) {
           exit(json_encode(['code' => 1,'msg' => '保存失败']));
       }else {
           exit(json_encode(['code' => 0,'msg' => '保存成功']));
       }
   }
}

2.add.html (视图部分)

<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="UTF-8">
   <title>Document</title>
   <link rel="stylesheet" href="/static/layui/css/layui.css">
   <script src="/static/layui/layui.js"></script>
   <style>
.container {
width: 350px;
border: 1px solid #ccc;
margin: 200px auto 0px;
padding: 20px;
       }
body {padding: 10px;}
</style>
</head>
<body>
<!-- <div> -->
<form class="layui-form" action="">
   <div class="layui-form-item">
       <label class="layui-form-label">菜单名</label>
       <div class="layui-input-inline">
           <input type="text" name="title" class="layui-input">
       </div>
   </div>
   <div class="layui-form-item">
       <label class="layui-form-label">排&nbsp;&nbsp;&nbsp;序</label>
       <div class="layui-input-inline">
           <input type="text" name="ord" class="layui-input">
       </div>
   </div>
   <div class="layui-form-item">
       <label class="layui-form-label">控制器</label>
       <div class="layui-input-inline">
           <input type="text" name="controller" class="layui-input">
       </div>
   </div>
   <div class="layui-form-item">
       <label class="layui-form-label">方法名</label>
       <div class="layui-input-inline">
           <input type="text" name="method" class="layui-input">
       </div>
   </div>
   <div class="layui-form-item">
       <label class="layui-form-label">状&nbsp;&nbsp;&nbsp;态</label>
       <div class="layui-input-block">
           <input type="checkbox" name="ishidden" lay-skin="primary" title="是否隐藏" value="1">
           <input type="checkbox" name="status" lay-skin="primary" title="是否禁用" value="1">
       </div>
   </div>
   <button class="layui-btn" type="button" style="margin-left: 110px;" onclick="save()">确定</button>
</form>
<!-- </div> -->

<script>
layui.use(['layer','form'], function(){
layer = layui.layer;
form = layui.form;
$ = layui.jquery;
   });
function save() {
var title = $.trim($('input[name="title"]').val());
var controller = $.trim($('input[name="controller"]').val());
var method = $.trim($('input[name="method"]').val());

if (title == '') {
layer.alert('请输入菜单名',{'icon': 2});
return false;
       }
if (controller == '') {
layer.alert('请输入控制器名',{'icon': 2});
return false;
       }
if (method == '') {
layer.alert('请输入方法名',{'icon': 2});
return false;
       }

$.post(
'/index.php/admin/menu/save',
$('form').serialize(),
function (res) {
if(res.code>0){
layer.alert(res.msg,{'icon':2});
               }else{
layer.alert(res.msg,{'icon':1});
setTimeout(function () {
parent.window.location.reload();
                   },1000);
               }
           },'json');
   }
</script>
</body>
</html>

Correcting teacher:天蓬老师Correction time:2019-05-25 17:27:23
Teacher's summary:下次记得放张图片上来, 对照着代码看, 比较直观些

Release Notes

Popular Entries