用thinkphp3.2时候,多数增删改查的页面基本相似。但是需要一个个去修改,修改列表字段,修改添加、编辑表单,重复工作要做好多次,有什么好的思路去做代码复用了?
参考大家的意见我做了如下的实现,请大家看一下谢谢:
1.先在行为中生成每个表的配置文件
$tables=M()->query('show tables'); $ts=[];foreach($tablesas$v) { $ts[]=$v['tables_in_addon']; }// 显示每个表的字段$fields=[];foreach($tsas$v) { $fields[$v]=M()->query("show FULL FIELDS from {$v}"); }// 遍历生成配置文件foreach($fieldsas$k => $v) { $filename=$k.".php"; $path=APP_PATH.'Common\Conf\Data'; is_dir($path)||mkdir($path,0777,true); $str="
2.然后在基础控制器中,读取控制器中数据,并分配到模版.
publicfunction__construct(){parent::__construct(); $filename=C('DB_PREFIX')."_".lcfirst(CONTROLLER_NAME).".php";// 读取指定的配置器文件$bd=requireCOMMON_PATH.'/Conf/Data/'.$filename;$this->assign('bd',$bd); }
3.在模版页面中根据字段生成表格,这里大多数input类型为text,所以我们没有做表单的类型判断.
:
有几个问题:
1.这样做有什么安全隐患,config目录下的表配置文件直接访问的话,直接会暴露数据库中的字段信息吧.
2.代码存在哪些问题,该怎么优化;还有什么好的解决思路.
网友评论