企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
#介绍 这是个令人激动的功能! 源码参考了OpenCenter 先看一段代码 ~~~ public function menulist(){ //生成页面之前建构数据模型 $id = $_GET['id']; $breadcrumb=getBreadcrumb($id); $this->breadcrumb = $breadcrumb; $table=array( 'id'=>'id', 'pid'=>'父ID', 'title'=>'名称', 'sort'=>'排序值', 'url'=>'链接地址', 'icon'=>'图表', 'status'=>'状态', 'c_time'=>'创建时间', // 'u_time'=>'修改时间', ); $page =$_GET['page']; $system = M('Menu'); $count = $system->count(); $page_list = ceil($count/10); $info = $system->where(array('status'=>'1'))->page($page,10)->select(); //调用表格制作函数 返回make_table 用来拆分$tbale 的key 和 value $make_table=makeTable($table); //调用jankzmaker 生成页面 $jankzmaker = new \JankzMaker\Controller\Admin\MakerTable(); $jankzmaker->setMetaTitle('测试') ->setTbodyData($info)//总数据 ->setTbodyList($make_table['list'])//循环列表 这里根据table设定生成 ->setThead($make_table['thead'])//循环表头 这里根据table设定生成 ->addRightBtn('info') ->addRightBtn('edit') ->addRightBtn('forbid') ->addRightBtn('resume') ->addRightBtn('delete') ->addTopBtn('add,forbid') ->addTopBtn('delete') ->setPage($page_list) ->display(); } ~~~ 这个函数看起来比较复杂,仔细分析 却意味深长. 来看看现在生产的页面吧 原理: 定义的表格$table 的键 和值 通过函数make_table()函数分离两个数组list 和thead 保存在$make_taable()中 这里的键对应数据库的name 值对应对应表格的表头. 设置表格数据,一般从数据库读取 setTbodyData($info) 循环表头 这里根据table设定生成 setThead($make_table['thead']) 循环列表 这里根据table设定生成 setTbodyList($make_table['list']) 添加头部操作按钮 一般为新增 禁用 删除 addTopBtn 添加表格右侧操作按钮 一般为查看 编辑 启用 禁用 删除 addRightBtn 设置数据分页 setPage 具体参见jankzTable ### 生成form表单 ~~~ public function add(){ if(!empty($_POST)){ $system =D('Menu'); $system->create(); $res = $system->add(); if($res){ $this->success('添加成功',U('Menu')); }else{ $this->error($system->getError()); } }else{ $info = getList();//调用无限级分类函数 $jankzmaker = new \JankzMaker\Controller\Admin\MakerForm(); $jankzmaker->setMetaTitle('后台管理') ->setCoulmn(2)//配置不分列 ->setUrl(U('Menu/add')) ->addFormItem('title','text','菜单名称','',1) ->addFormItem('sort','text','排序值','',2) ->addFormItem('url','text','链接地址','',1) ->addFormItem('icon','text','图标','',2) ->addFormItem('pid','select','父ID','',1,$info) ->display(); } } ~~~ setUrl() 设置提交地址 添加表单元素 addFormItem() 打印表单 display()