>這邊使用的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();
}
}
}