>这边使用的validate方法是实例化\think\validate方法,然后调用$validate参数。
个人的想法是,之后后台吧menu做的好了,然后才好去做权限,接着再做登录模块。
<?php
namespace app\admin\Controller;
use think\Controller;
use think\Request;
use think\Db;
use app\Admin\Model\Menu as MenuModel;
Class Menu extends Controller {
public function add() {
$menu = new MenuModel();
if (request()->isPost()) {
$data = input('post.');
//验证Menu添加数据
$validata = \think\Loader::Validate('Menu');
if (!$validata->scene('add')->check( $data)){
$this->error($validate->getError());
}
$add = $menu->save($data );
if ($add !== false) {
$this->success('增加后台菜单成功', 'Menu/index');
} else {
$this->error('增加菜单失败');
}
}
$menuData = db('menu')->field(true)->select();
$menuList = $menu->list_to_tree($menuData);
$this->assign('menuList', $menuList);
return view();
}
public function index() {
$menu = new MenuModel();
$menuData = db('Menu')->select();
$menuList = $menu->list_to_tree($menuData);
$this->assign('menuList', $menuList);
return view();
}
public function del($id) {
$del = db('menu')->delete($id);
if ($del) {
$this->success('删除菜单成功');
} else {
$this->error('删除菜单失败');
}
}
public function edit($id) {
if (request()->isPost()) {
$data = input('post.');
//修改时数据验证
$validata = \think\Loader::Validate('Menu');
if (!$validata->scene('edit')->check( $data)) {
$this->error($validata->getError());
}
//修改操作
$edit = db('menu')->where('id', $id)->update( $data);
if ($edit) {
$this->success('修改菜单项成功', 'Menu/index');
} else {
$this->error('修改失败');
}
} else {
if (empty($id)) {
return $this->error('没有选择id');
}
$map['id'] = $id;
$menuData = db('menu')->find($id);
//Menu信息分叉成树
$menuList = db('menu')->select();
$menuTree = list_to_tree( $menuList);
$this->assign( array(
'menuTree' => $menuTree,
'menu' => $menuData,
));
return view();
}
}
}